Java之MD5加密
MD5加密用来对字符串加密,不可以逆转解密。加密之后默认为32位的十六进制。
在MySql中可以直接使用MD5函数,如下:
修改密码为字符串“ZYJ”的MD5加密。

从下图可以看出使用MD5加密字符串“ZYJ”为9d2dc2f4168f1121bf8c2dd6879abcf4,是一串32位的十六进制。因此在设计表时,对于需要进行MD5加密的字段长度需大于32。

在MyEclipse 10中同样可以使用MD5加密,需引进java.security.MessageDigest和java.security.NoSuchAlgorithmException,方法如下:
public final static String getMD5(String s){
char hexDigits[]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
try {
byte[] btInput = s.getBytes();
MessageDigest mdInst = MessageDigest.getInstance("MD5");
mdInst.update(btInput);
//获得密文
byte[] md = mdInst.digest();
//把密文转换成十六进制的字符串形式
int j = md.length;
char str[] = new char[j * 2];
int k = 0;
for (int i = 0; i < j; i++) {
byte byte0 = md[i];
str[k++] = hexDigits[byte0>>> 4 & 0xf];
str[k++] = hexDigits[byte0 & 0xf];
}
return new String(str);
} catch (NoSuchAlgorithmException e) {
return null;
}
}
执行方法得到的结果与MySql中的MD5函数一致,如下图所示:

本文详细介绍了如何在Java中使用MD5加密算法对字符串进行不可逆加密,包括在MySql中直接使用MD5函数和在MyEclipse10中通过java.security.MessageDigest实现的方法。MD5加密结果为32位十六进制,适用于密码等敏感信息的安全存储。
622

被折叠的 条评论
为什么被折叠?



