0

Springは古いインターフェースを廃止したため

org.springframework.security.crypto.password.PasswordEncoder;

で動作する代替手段を探しました

org.springframework.security.authentication.encoding.PasswordEncoder;

私の検索は私を指しています:https://stackoverflow.com/a/18678325

私は bcrypt をテストしましたが、それがどのように機能するかに興味がありました。

https://stackoverflow.com/a/6833165の説明は、1 つの質問を示しています。

$2a$10$ZaDBCZaI59IMdKuBiRdubuMa2h/itIYIwqLHpS1q245ISD90xsjkWエンコーディングのタイプやソルトなどに関するすべての情報が含まれており、これがデータベースに保存されている場合、なぜ保存されるのですか? 誰かがこの「ハッシュ」を持っている場合、彼は力ずくで簡単に解読できます。

以前のプロジェクトでは、システム全体のシークレット ソルトを使用して SHA エンコードを使用しました。このシナリオでは、データベースから盗んだハッシュを簡単に解読することはできません。

では、システム全体のソルトを使用した SHA よりも bcrypt が好まれるのはなぜですか?

4

1 に答える 1

0

2点:

  1. Bcrypt は、プロセスを任意に遅くする構成可能な複雑さを持つことにより、ブルート フォース攻撃に抵抗するように設計されています。詳細については、ウィキペディアを参照してください
  2. データベース内の各パスワードには共有コンポーネントが含まれていることがわかっているため、既存のシステムのようにすべてのパスワードに同じハッシュを使用すると、差分攻撃に対して脆弱になる可能性があります。
于 2013-11-11T10:31:16.673 に答える