【发布时间】:2021-03-13 20:20:14
【问题描述】:
在我的项目中,我使用 BCryptPasswordEncoder 作为对密码进行编码的一种方式。只要我不关闭我的机器,一切正常,但是,当重新运行我的代码时,BCryptpasswordEncoder 也会重新初始化,重置它的哈希,使 match() 方法无法与我的密码一起使用存储,它们是使用之前的哈希创建的。
这是我正在谈论的一段代码:
PasswordEncoder encoder = new BCryptPasswordEncoder();
User u = this.dataSource.getUserByUsername(username);
String passwordEncoded = encoder.encode(password);
if (u == null) {
return "No such user";
} else {
if (encoder.matches(password, u.getPassword())) {
return passwordEncoded;
} else {
return "Incorrect password";
}
}
我知道保持一致的哈希值通常会破坏编码的目的,但现在的方式是,关闭任何东西会使我以前在我的存储库中的所有用户条目无用。对此我有什么办法吗?
【问题讨论】:
标签: java spring-boot bcrypt