看了MD5算法详细介绍这篇博客之后,想着实现一下MD5加密算法。本来想完整的实现加密算法的,但是后来发现Java中的MessageDigest包中已经打包好了MD5的加密算法,使用起来十分方便,于是就直接使用这个实现了。如果有时间还是可以完整的步骤实现一下试试的。
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5 {
public static String hex = "0123456789abcdef";
public static void main(String args[]){
MD5 temp = new MD5();
System.out.println(temp.md5(""));
}
public String md5(String str){
String res = new String();
try{
//选择加密算法,还有其他选择项
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] bytes = md.digest(str.getBytes());
res = byteToString(bytes);
}catch (NoSuchAlgorithmException e){
e.printStackTrace();
}
return res;
}
/*
* 将返回的结果byte【】数组转换为16进制字符串
* */
public String byteToString(byte[] bytes){
String res = "";
for(int i = 0;i < bytes.length;i++){
//byte是8位,首先高四位右移4位与15(0000 1111)与一下就是高四位的值
res += hex.charAt(bytes[i]>>4 & 15);
res += hex.charAt(bytes[i] & 15);
}
return res;
}
}