クラス SCryptPasswordEncoder

java.lang.ObjectSE
org.springframework.security.crypto.password.AbstractValidatingPasswordEncoder
org.springframework.security.crypto.scrypt.SCryptPasswordEncoder
実装されているすべてのインターフェース:
PasswordEncoder

public class SCryptPasswordEncoder extends AbstractValidatingPasswordEncoder

SCrypt ハッシュ関数を使用する PasswordEncoder の実装。クライアントはオプションで、CPU コストパラメーター、メモリコストパラメーター、並列化パラメーターを提供できます。

いくつかの警告 :

  • 現在の実装では、パスワードクラッカーが行う並列処理 / 最適化を利用しない Bouncy Castle を使用しているため、攻撃者と防御者の間に不必要な非対称性があります。
  • Scrypt は、Salsa20 をベースにしており、Java では(AES と同等)パフォーマンスは低くなりますが、SIMD 対応プラットフォームでは(4-5 倍程度高速)素晴らしいパフォーマンスを発揮します
  • 同意しないものもありますが、読むことを検討してください -Scrypt を推奨しない理由 (パスワード保存用)
  • コンストラクターの詳細

    • SCryptPasswordEncoder

      public SCryptPasswordEncoder(int cpuCost, int memoryCost, int parallelization, int keyLength, int saltLength)
      指定されたパラメーターを使用して SCrypt パスワードエンコーダーを構築します。
      パラメーター:
      cpuCost - アルゴリズムの CPU コスト (scrypt で定義されているように、これは N です)。1 より大きい 2 の累乗でなければなりません。現在のデフォルトは 65,536 または 2^16 です)
      memoryCost - アルゴリズムのメモリコスト(scrypt で定義されているとおり、これは r)デフォルトは現在 8 です。
      parallelization - アルゴリズムの並列化(scrypt で定義されているように、これは p)デフォルトは現在 1 です。実装は現在並列化を利用していません。
      keyLength - アルゴリズムのキーの長さ (scrypt で定義されているように、これは dkLen です)。デフォルトは現在 32 です。
      saltLength - ソルトの長さ (scrypt で定義されているように、これは S の長さです)。現在のデフォルトは 16 です。
  • メソッドの詳細