我在使用BCrypt时遇到问题。我想以一种安全的方式存储用户密码,因此,我使用Spring的BCrypt来存储加密的密码。我现在面临的问题是,BCrypt生成一个随机盐,当然,密码无法解密。但是我怎么才能处理登录呢?
private PasswordEncoder encoder = new BCryptPasswordEncoder();
public String encryptPassword(String password) {
String encryptedValue = encoder.encode(password);
Assert.isTrue(encoder.matches(password, encryptedValue));
return encryptedValue;
}
当用户输入其凭据时,我需要做什么来确保密码匹配?
String encryptedPassword = encryptionGenerator.encryptPassword(loginCredentials.getPassword());
然后我试着用hibernate从数据库中读取数据
FROM Login WHERE email = :email AND password = :password AND email_confirmed = 1"
1条答案
按热度按时间56lgkhnf1#
为了确保密码匹配时,用户正在输入他的凭据,没有必要再次编码密码,以验证编码密码,你从数据库中得到的。
BCryptPasswordEncoder类只会按照字符串值匹配密码。
我试着遵循的方式和它为我工作。如果您关心的是对用户进行身份验证,您可以尝试以下方法:
`
`