Здравствуйте. Я потратил несколько часов, пытаясь выяснить , почему мой хешированный пароль пуст. Я пытаюсь использовать 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);
}
}