写作初衷:由于日常开发经常需要用到很多工具类,经常根据需求自己写也比较麻烦 网上好了一些工具类例如commom.lang3或者hutool或者Jodd这样的开源工具,但是 发现他们之中虽然设计不错,但是如果我想要使用,就必须要引入依赖并且去维护依赖,有些 甚至会有存在版本编译不通过问题,故此想要写作一个每个类都可以作为独立工具类使用 每个使用者只需要复制该类,到任何项目当中都可以使用,所以需要尊从以下两个原则才能 做到.在此诚邀各位大佬参与.可以把各自用过的工具,整合成只依赖JDK,每个类都能够单独 使用的工具.每个人当遇到业务需求需要使用的时候,只需要到这里单独拷贝一个即可使用. 抛弃传统的需要引入依赖的烦恼.让大家一起来解决你所面临的业务问题吧!
遵从两大原则
package *;
import java.security.MessageDigest;
/**
* @program: simple_tools
* @description: MD5加密工具
* @author: ChenWenLong
* @create: 2019-10-18 11:44
**/
public class Md5Utils {
/**
* 功能描述:
* 〈将字符春转成byte数组〉
*
* @params : [s]
* @return : byte[]
* @author : cwl
* @date : 2019/10/18 11:47
*/
private static byte[] md5(String s) {
MessageDigest algorithm;
try {
algorithm = MessageDigest.getInstance("MD5");
algorithm.reset();
algorithm.update(s.getBytes("UTF-8"));
byte[] messageDigest = algorithm.digest();
return messageDigest;
} catch (Exception e) {
//此处建议转日志记录
System.out.println("MD5 Error..."+e.getMessage());
}
return null;
}
/**
* 功能描述:
* 〈将Byte[]转成16进制〉
*
* @params : [hash]
* @return : java.lang.String
* @author : cwl
* @date : 2019/10/18 11:47
*/
private static final String toHex(byte hash[]) {
if (hash == null) {
return null;
}
StringBuffer buf = new StringBuffer(hash.length * 2);
int i;
for (i = 0; i < hash.length; i++) {
if ((hash[i] & 0xff) < 0x10) {
buf.append("0");
}
buf.append(Long.toString(hash[i] & 0xff, 16));
}
return buf.toString();
}
/**
* 功能描述:
* 〈实现MD5加密〉
*
* @params : [s]
* @return : java.lang.String
* @author : cwl
* @date : 2019/10/18 11:47
*/
public static String hash(String s) {
try {
return new String(toHex(md5(s)).getBytes("UTF-8"), "UTF-8");
} catch (Exception e) {
System.out.println("not supported charset...{}"+e.getMessage());
return s;
}
}
}