在网上找了很多方法试过,比较喜欢这个写法,自己拼凑后完成相应效果。
这里介绍的是字符串MD5加密,输出32位大写
工具类代码:
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
* MD5加密工具
*
*/
public class MD5Util {
public static String stringToMD5(String plainText) {
byte[] mdBytes = null;
try {
mdBytes = MessageDigest.getInstance("MD5").digest(
plainText.getBytes());
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException("MD5算法不存在!");
}
String mdCode = new BigInteger(1, mdBytes).toString(16);
if(mdCode.length() < 32) {
int a = 32 - mdCode.length();
for (int i = 0; i < a; i++) {
mdCode = "0"+mdCode;
}
}
return mdCode.toUpperCase(); //返回32位大写
// return mdCode; // 默认返回32位小写
}
}
使用方法:
//字符串通过工具类加密
String password = MD5Util.stringToMD5(password);