Spring DigestUtils
spring-core DigestUtils 只提供了md5加密
public static void main(String[] args){
String str = "md5加密";
String md5Hex = DigestUtils.md5DigestAsHex(str.getBytes());
}
MessageDigest
String str = "加密";
//通过传入md5 sha1 等参数获取MessageDigest对象
MessageDigest digest = MessageDigest.getInstance("MD5");
digest.update(str.getBytes());
byte[] bytes = digest.digest();
//加密完为字节数组,然后转化为字符串
String result = convertByte2String(bytes);
//commons-codec 中的实现方式
private String convertByte2String(byte[] byteResult) {
char[] hexDigits= new char[]{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
int l = byteResult.length;
char[] out = new char[l << 1];
int i = 0;
for(int var5 = 0; i < l; ++i) {
//out[index++] = hexDigits[(byteResult[i] >>> 4) & 0xf];
//out[index++] = hexDigits[byteResult[i] & 0xf];
out[var5++] = hexDigits[(240 & byteResult[i]) >>> 4];
out[var5++] = hexDigits[15 & byteResult[i]];
}
return new String(out);
}
commons-codec
引入pom依赖
<!--spring boot 已经指定version不用再添加 -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</dependency>
commons-codec 通过封装MessageDigest 直接提供了md5 sha1 sha256 sha512 等加密方法
public static void main(String[] args){
String str = "加密";
String md5Hex = DigestUtils.md5Hex(str.getBytes());
String sha1Hex = DigestUtils.sha1Hex(str.getBytes());
String sha256Hex = DigestUtils.sha256Hex(str.getBytes());
String sha512Hex = DigestUtils.sha512Hex(str.getBytes());
}