Max*_*meF 6 java postgresql spring spring-security password-encryption
如何加密密码将其插入数据库并在比较后何时连接?
我会使用StandardPasswordEncoder Spring security 3.1.4来加密我的密码并插入到db中.但是如何恢复该方法生成的盐?
这是doc Spring安全性的一个例子:
StandardPasswordEncoder encoder = new StandardPasswordEncoder("secret");
String result = encoder.encode("myPassword");
assertTrue(encoder.matches("myPassword", result));
Run Code Online (Sandbox Code Playgroud)
我问她,因为我需要重新编码密码进行比较?并验证用户是否必须输入正确的密码?
这里密码编码: 9e7e3a73a40871d4b489adb746c31ace280d28206dded9665bac40eabfe6ffdc32a8c5c416b5878f
我会比较编码新密码
Link Doc Spring:http://docs.spring.io/spring-security/site/docs/3.1.4.RELEASE/reference/crypto.html Link API SPring security 3.1.4:http://docs.spring.io /spring-security/site/docs/3.1.4.RELEASE/apidocs/
我想你问它是如何工作的?答案很简单.StandardPasswordEncoder.matches()是您要使用的方法.在幕后,StandardPasswordEncoder将解码散列密码并从生成的字节数组中提取salt.然后它将使用该哈希值来传入您传入的纯文本密码.如果生成的哈希值与原始哈希值匹配,则您的密码匹配!有关详细信息,请参阅来源StandardPasswordEncoder.matches():
public boolean matches(CharSequence rawPassword, String encodedPassword) {
byte[] digested = decode(encodedPassword);
byte[] salt = subArray(digested, 0, saltGenerator.getKeyLength());
return matches(digested, digest(rawPassword, salt));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6319 次 |
| 最近记录: |