4
私はこれで私の髪を引っ張っています。私は持っている。これは、パスワードハッシュは、ハッシュされたパスワードではなくハッシュ解除済みの検証されたことを意味の前に任意の検証を、起こることを除いて正常に動作します。このJava Springハッシュとパスワードの検証
@Entity
public class User {
private static final PasswordEncoder pwEncoder = new BCryptPasswordEncoder();
@Id
@GeneratedValue
private long id;
@NotNull(message = "FIELD_IS_NULL")
@NotEmpty(message = "FIELD_IS_REQUIRED")
@Length(min = 3, message = "FIELD_MUST_HAVE_AT_LEAST_3_CHARACTERS")
private String username;
@NotNull(message = "FIELD_IS_NULL")
@NotEmpty(message = "FIELD_IS_REQUIRED")
@Length(min = 6, message = "FIELD_MUST_HAVE_AT_LEAST_6_CHARACTERS")
@Pattern(regexp = "^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{6,128}$", message="PW_MIN_6_MAX_128_1_UPPER_1_LOWER_1_NUMERIC")
private String password;
public User(String username, String password){
this.username = username;
this.password = pwEncoder.encode(password);
}
/* getters and setters */
}
のような単純なユーザー・エンティティ。
私はすべてのリポジトリニーズにPagingAndSortingRepository
を使用しています。この場合はコントローラを実装しないでください。私はそこに本当に大きな何かが欠けているように私は感じている
...
これは暗号化ではなく、ハッシングです。ハッシュを比較することになっているので、元のパスワードを平文で保存しないでください。ハッシュに検証を適用しないでください。意味がありません。 – jonrsharpe
もちろん、あなたはハッシュ対暗号化について正しいです。しかし、ハッシュではなくパスワードに検証を適用するにはどうすればよいですか? – Fabian
私は、エンティティクラスはそのようなアルゴリズムに適しているかどうかはわかりません。 –