2017-08-28 4 views
2

私はBCryptで春のセキュリティを使用しています。 値が等しい場合、春のセキュリティでコード化されたパスワードはBCryptのようには見えません

は、だから私は、DBのパスワードで passwordEncoder

@Autowired 
    public void configureAuthentication(AuthenticationManagerBuilder authenticationManagerBuilder) throws Exception { 
     authenticationManagerBuilder 
       .userDetailsService(this.userDetailsService) 
       .passwordEncoder(passwordEncoder()); 
    } 

    @Bean 
    public PasswordEncoder passwordEncoder() { 
     return new BCryptPasswordEncoder(); 
    } 

を設定しています私のスニペットが正しくbcryptのように保存されますが、私は認証しようとしているとき、私は、エラー

Encoded password does not look like BCrypt 

    "status": 401, 
    "error": "Unauthorized", 
    "exception": "org.springframework.security.authentication.BadCredentialsException", 
を受けています
+0

この回答はうまくいくはずです:https://stackoverflow.com/questions/23456383/password-encoding-bcrypt-not-authorising-hashed-passwords-authorising-on-pl。 – NMSL

答えて

0
bcryptのハッシュアルゴリズム、毎回、長さ60の異なるハッシュ値が生成されるで

、例えば

$ 2A $ 10 $ LOqePml/koRGsk2YAIOFI.1YNKZg7EsQ5BAIuYP1nWOyYRl21d lne

「パスワード」列(ユーザー表)の長さは、パスワードVARCHAR(45)など60未満です。一部のデータベースでは、データが自動的に切り捨てられます。したがって、「エンコードされたパスワードはBCryptのようには見えません」という警告が常に表示されます。

「パスワード」欄の長さは、少なくとも60

文献であることを確認し、それを解決するために:https://www.mkyong.com/spring-security/spring-security-encoded-password-does-not-look-like-bcrypt/

+1

列の長さはVARCHAR(255)です。 – Bart

0

私は同じエラーが発生しました。私のケースでは、私は手動でパスワードをデータベースに追加しました。問題は、オンラインのBCryptジェネレータで生成されたものです。$2y$接頭辞を使用しています。BCryptPasswordEncoder$2a$です。だから、私はちょうど別の発電機を使いました。

関連する問題