您好我花了几个小时试图找出为什么我的哈希密码为空。我正在尝试使用Spring BCryptPasswordEncoder。我已阅读了几篇文档,查看了许多不同的示例,并观看了有关如何使用此加密器的视频,但我无法让它工作。查看我的MYSQL数据库,我知道密码字段已填充,但hashPassword的字段仍为空。在任何人翻转之前我知道普通密码不应该存储在数据库中,但目前我知道密码参数不是空的。据我所知,这不是一个重复的问题,如果是这样,请指引我到正确的地方,因为我看到的哈希类别的所有内容都没有帮助。以下是我正在使用的代码片段,如果您需要更多详细信息,请告诉我们。
@Entity
public class User {
@Id
@GeneratedValue
private int uid;
@NotNull
@Column(unique = true )
private String username;
@NotNull
private String password;
@Column
private String hashedPassword;
private static final BCryptPasswordEncoder encodedPassword = new BCryptPasswordEncoder();
public User(String username, String password) {
this.username = username;
this.password = password;
this.hashedPassword = hashIt(this.password);
}
public User() { }
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getHashedPassword() {
return hashedPassword;
}
public void setHashedPassword(String hashedPassword) {
this.hashedPassword = hashedPassword;
}
public String hashIt(String password) {
return encodedPassword.encode(password);
}
public boolean isCorrectPassword(String password){
return encodedPassword.matches(password,hashedPassword);
}
}