最近在开发中在存用户密码存储到数据库时,为了不明文存储,就使用了比较通用的MD5加密算法,
这里贴一下简单实现:
public class StringToMd5 {
public static String stringToMd(String plainText) throws NoSuchAlgorithmException {
//实例化一个消息摘要,算法为Md5,参数不区分大小写
MessageDigest md5 = MessageDigest.getInstance("md5");
//将String类型的数据转换为字节数组
byte[] btInput = plainText.getBytes(); //默认的字节编码
//传入需要处理的字节数组到摘要对象中
md5.update(btInput);
//计算摘要(即生成散列码) 返回摘要的字节数组
byte[] btResult = md5.digest();
//处理摘要结果
StringBuffer sb = new StringBuffer(); //建立一个字符串缓冲区
for(byte b : btResult){
System.out.println(b);
//将每一个字节转化成十六进制的字符串添加到缓冲区中
/**
* 关于为什么要&0xff的问题自行百度 这里涉及到byte(8位) 转 int(32位) 的计算
*/
sb.append(Integer.toHexString(b & 0xff));
System.out.println(sb);
}
return sb.toString();
}
public static void main(String[] args) throws NoSuchAlgorithmException {
String plainText = "fjjfffjkf5454545";
String pwdToMd5 = StringToMd5.stringToMd(plainText);
System.out.println(pwdToMd5);
}
}
md5算法加密实现
最新推荐文章于 2021-06-19 21:25:54 发布