我正在使用以下代码使用MD5和Im加密我的网页中的安全性。
public static String stringToMD5(String password)
{
MessageDigest messageDigest;
try {
messageDigest = MessageDigest.getInstance("MD5");
messageDigest.update(password.getBytes(),0, password.length());
String hashedPass = new BigInteger(1,messageDigest.digest()).toString(16);
if (hashedPass.length() < 32) {
hashedPass = "0" + hashedPass;
}
return hashedPass;
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return password;
}
但是因为自定义登录方式我必须开发一个自定义的AbstractAuthenticationProcessingFilter,现在我必须解密那个MD5。
所以问题是如何解密该函数产生的。
提前致谢。
答案 0 :(得分:2)
MD5是一种单向算法。这不是一对一的映射。无法解密其输出。
使用存储的MD5加密密码时,您必须通过加密输入并将结果与存储的加密密码进行比较来对用户进行身份验证。