MD5加密
MD5
是一种不可逆的加密算法只能将原文加密,不能将密文再还原回去,原来把加密后将这个数组通过Base64
给变成字符串,
这样是不严格的业界标准的做法是对其加密之后用每个字节&15
然后就能得到一个int
型的值,再将这个int
型的值变成16进制的字符串.虽然MD5不可逆,
但是网上出现了将常用的数字用md5
加密之后通过数据库查询,所以MD5
简单的情况下仍然可以查出来,一般可以对其多加密几次或者&15
之后再和别的数运算等,
这称之为加盐.
public class MD5Utils {
/**
* md5加密的工具方法
*/
public static String encode(String password){
try {
MessageDigest digest = MessageDigest.getInstance("md5");
byte[] result = digest.digest(password.getBytes());
StringBuilder sb = new StringBuilder();//有的数很小还不到10所以得到16进制的字符串有一个
//的情况,这里对于小于10的值前面加上0
//16进制的方式 把结果集byte数组 打印出来
for(byte b :result){
int number = (b&0xff);//加盐.
String str =Integer.toHexString(number);
if(str.length()==1){
sb.append("0");
}
sb.append(str);
}
return sb.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return "";
}
}
}
- 邮箱 :[email protected]
- Good Luck!