工具:Eclipse
源码地址:https://github.com/Sunjinhang/Java
使用java自带的工具类实现MD5加密
加密函数
public static String Encrypt(String str)
{
StringBuffer code = new StringBuffer();
MessageDigest md5 = null;
try {
md5 = MessageDigest.getInstance("MD5");
}
catch(Exception ex) {
ex.printStackTrace();
}
char[] charArr = str.toCharArray();
byte[] byteArr = new byte[charArr.length];
for(int i = 0;i < charArr.length; i++) {
byteArr[i] = (byte)charArr[i];
}
byte[] md5Arr = md5.digest(byteArr);
for(int i = 0;i < md5Arr.length; i++) {
int value = (int)md5Arr[i] & 0xff;
if(value < 16)
{
code.append("0");
}
code.append(Integer.toHexString(value));
}
return code.toString();
}
主要原理就是调用java自带的 MessageDigest,先将用户输入的字符串拆分成单个的字符,以数组形式存储,然后遍历数组,根据ASCII码表对应出每个字符的ASCII码,然后再调用加密函数对转换出的ASCII码数组进行加密。
其中值得注意的时 byte & 0xff 是二进制补位操作,
加密完成后最后转换成字符串的形式呈现
测试:
public static void main(String[] args) {
String str = Encrypt("123456");
System.out.println(str);
}
输出结果