クラス SCryptPasswordEncoder
java.lang.ObjectSE
org.springframework.security.crypto.password.AbstractValidatingPasswordEncoder
org.springframework.security.crypto.scrypt.SCryptPasswordEncoder
- 実装されているすべてのインターフェース:
PasswordEncoder
SCrypt ハッシュ関数を使用する PasswordEncoder の実装。クライアントはオプションで、CPU コストパラメーター、メモリコストパラメーター、並列化パラメーターを提供できます。
いくつかの警告 :
- 現在の実装では、パスワードクラッカーが行う並列処理 / 最適化を利用しない Bouncy Castle を使用しているため、攻撃者と防御者の間に不必要な非対称性があります。
- Scrypt は、Salsa20 をベースにしており、Java では(AES と同等)パフォーマンスは低くなりますが、SIMD 対応プラットフォームでは(4-5 倍程度高速)素晴らしいパフォーマンスを発揮します
- 同意しないものもありますが、読むことを検討してください -Scrypt を推奨しない理由 (パスワード保存用)
コンストラクターの概要
コンストラクターコンストラクター説明SCryptPasswordEncoder(int cpuCost, int memoryCost, int parallelization, int keyLength, int saltLength) 指定されたパラメーターを使用して SCrypt パスワードエンコーダーを構築します。方法の概要
修飾子と型メソッド説明static SCryptPasswordEncoder使用すべきではありません。static SCryptPasswordEncoderCPU コスト 65,536、メモリコスト 8、並列化 1、キー長 32、ソルト長 16 バイトの SCrypt パスワードエンコーダを構築します。protected StringSEencodeNonNullPassword(StringSE rawPassword) protected booleanmatchesNonNull(StringSE rawPassword, StringSE encodedPassword) protected booleanupgradeEncodingNonNull(StringSE encodedPassword) クラス org.springframework.security.crypto.password.AbstractValidatingPasswordEncoder から継承されたメソッド
encode, matches, upgradeEncoding
コンストラクターの詳細
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 です。
メソッドの詳細
defaultsForSpringSecurity_v4_1
使用すべきではありません。代わりにdefaultsForSpringSecurity_v5_8()を使用してくださいCPU コスト 16,384、メモリコスト 8、並列化 1、キー長 32、ソルト長 64 バイトの SCrypt パスワードエンコーダを構築します。- 戻り値:
SCryptPasswordEncoder- 導入:
- 5.8
defaultsForSpringSecurity_v5_8
CPU コスト 65,536、メモリコスト 8、並列化 1、キー長 32、ソルト長 16 バイトの SCrypt パスワードエンコーダを構築します。- 戻り値:
SCryptPasswordEncoder- 導入:
- 5.8
encodeNonNullPassword
matchesNonNull
- 次で指定:
- クラス
AbstractValidatingPasswordEncoderのmatchesNonNull
upgradeEncodingNonNull
- オーバーライド:
- クラス
AbstractValidatingPasswordEncoderのupgradeEncodingNonNull
defaultsForSpringSecurity_v5_8()を使用してください