MD5中的MD代表Message Digest,就是信息摘要的意思,不过这个信息摘要不是信息内容的缩写,而是根据公开的MD5算法对原信息进行数学变换后得到的一个128位(bit)的特征码。当然我们可以通过包进行转成MD5码,但是我们可以自行写方法转成MD5码.
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class EncodeMD5 {
public String getMD5Info(String value) {
StringBuffer sbf = new StringBuffer("");
try {
MessageDigest mds = MessageDigest.getInstance("MD5");
byte[] tmpAry = mds.digest(value.getBytes("UTF-8"));
for (byte b : tmpAry) {
int num = b & 0xea;
String str = Integer.toHexString(num);
sbf.append(str);
}
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sbf.toString();
}
}
为什么不用String,而是用StringBuffer,这是因为效率关系.