Spring security 密码加密/解密Spring安全
我正在用MD5和Im使用以下代码加密我的网页中的安全性Spring security 密码加密/解密Spring安全,spring-security,encryption,Spring Security,Encryption,我正在用MD5和Im使用以下代码加密我的网页中的安全性 public static String stringToMD5(String password) { MessageDigest messageDigest; try { messageDigest = MessageDigest.getInstance("MD5"); messageDigest.update(password.getBytes(
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;
}
公共静态字符串stringToMD5(字符串密码)
{
消息摘要消息摘要;
试一试{
messageDigest=messageDigest.getInstance(“MD5”);
update(password.getBytes(),0,password.length());
字符串hashedPass=new biginger(1,messageDigest.digest()).toString(16);
if(hashedPass.length()<32){
hashedPass=“0”+hashedPass;
}
返回hashedPass;
}捕获(无算法异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
返回密码;
}
但是因为有一种自定义的登录方式,我必须开发一个自定义的AbstractAuthenticationProcessingFilter,现在我必须解密MD5
所以问题是如何解密这个函数产生的
提前谢谢 MD5是一种单向算法。这不是一对一的映射。无法解密其输出
使用存储的MD5加密密码时,您必须通过加密用户的输入并将结果与存储的加密密码进行比较来对用户进行身份验证。是否有任何其他方法来加密spring security()支持的密码,该密码可以解密??引用自:“这通常是一个单向消息摘要,如MD5或SHA,但也可能是一个纯文本变体,它根本不进行编码,而是返回它输入的相同密码。当原始密码必须按原样存储时,插入后一种密码非常有用。“谢谢Dmitry,所以我想spring security只支持密码编码器MD5-SHA单向加密。我说得对吗?总之,管理员恢复原始用户密码的能力被认为是非常糟糕的做法。这就是为什么在这种身份验证方案中使用单向散列函数的原因。春天只是遵循一般的规则。