MD5是一个安全的散列算法,输入两个不同的明文不会得到相同的输出值,根据输出值,不能得到原始的明文,即其过程不可逆,即安全性较高,目前情况下md5128位加密认为是不可解的
public class MD5Utils {
public static String MD5Src(String src){//加密
char[] chars = {'来','0', '1', '2', '3', '4','给', '5', '6', '7', '8', '9',
'A', 'B', 'C', 'D', 'E', 'F','看','*','#','a', 'v',};
StringBuilder sb = new StringBuilder();
// 定义数据源,将数据源转换成字节数组
byte[] bytes = src.getBytes();
// 获取摘要
try {
MessageDigest digest = MessageDigest.getInstance("md5");
// 对字节数组进行加密运算,得到新的字节数组
byte[] bytes1 = digest.digest(bytes);
for (byte b : bytes1) {
sb.append(chars[b&0x0f]);
sb.append(chars[(b>>4)&0x0f]);
}
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return sb.toString();
}
}
登录时:
db.userLogin(user, MD5Utils.MD5Src(pwd));
注册时:
User uu=new User(user, pwd, 1, "一般用户");
uu.setPwd(MD5Utils.MD5Src(pwd));//把密码设为md5加密
db.addUser(uu);
网友评论