MD5加密
1.创建MD5加密的工具类
package com.bing.weibo.util;
/**
* @Author IBing
* @Date 2022/7/18 1:35
* @Version 1.0
*/
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
* Md5工具类
*/
public class Md5Util {
/**
* 16进制字符
*/
static String[] chars = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};
/**
* 将普通字符串用md5加密,并转化为16进制字符串
* @param str
* @return
*/
public static String getMd5(String str) {
// 消息签名(摘要)
MessageDigest md5 = null;
try {
// 参数代表的是算法名称
md5 = MessageDigest.getInstance("md5");
byte[] result = md5.digest(str.getBytes());
StringBuilder sb = new StringBuilder(32);
// 将结果转为16进制字符 0~9 A~F
for (int i = 0; i < result.length; i++) {
// 一个字节对应两个字符
byte x = result[i];
// 取得高位
int h = 0x0f & (x >>> 4);
// 取得低位
int l = 0x0f & x;
sb.append(chars[h]).append(chars[l]);
}
return sb.toString();
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
}
}
}
2.使用
在保存或更新前 调用
如:
//针对密码加密
user.setPassword(Md5Util.getMd5(user.getPassword()));
这样数据库里的密码就是加密的了