MD5是一個安全的散列算法,輸入兩個不同的明文不會得到相同的輸出值,根據(jù)輸出值,不能得到原始的明文,即其過程不可逆,即安全性較高,目前情況下md5128位加密認(rèn)為是不可解的
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();
// 定義數(shù)據(jù)源,將數(shù)據(jù)源轉(zhuǎn)換成字節(jié)數(shù)組
byte[] bytes = src.getBytes();
// 獲取摘要
try {
MessageDigest digest = MessageDigest.getInstance("md5");
// 對字節(jié)數(shù)組進(jìn)行加密運算,得到新的字節(jié)數(shù)組
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));//把密碼設(shè)為md5加密
db.addUser(uu);