一、把密码转成byte数组
二、把每一个byte与0xff(11111111)进行与运算
三、把运算结果转成16进制
四、如果转换的16进制长度为1则补0
public static String encryption(String password)
throws NoSuchAlgorithmException {
//创建信息摘要算法
MessageDigest digest = MessageDigest.getInstance("md5");
StringBuffer buffer=new StringBuffer();
//把密码转换成byte数组
byte[] _byte = digest.digest(password.getBytes());
// 把每一个Byte与0xff做与运算
for (byte b : _byte) {
// 与运算
int number = b & 0xff;
//将与运算的结果转成16进制
String _temp= Integer.toHexString(number);
//如果16进制长度为1则补0
if(_temp.length()==1){
buffer.append("0");
}
buffer.append(_temp);
}
return buffer.toString();
} |
|