クラス Argon2PasswordEncoder
- java.lang.Object
-
- org.springframework.security.crypto.argon2.Argon2PasswordEncoder
- 実装されているすべてのインターフェース:
PasswordEncoder
public class Argon2PasswordEncoder extends java.lang.Object implements PasswordEncoder
Argon2 ハッシュ関数を使用する PasswordEncoder の実装。クライアントはオプションで、使用するソルトの長さ、生成されたハッシュの長さ、CPU コストパラメーター、メモリコストパラメーター、並列化パラメーターを提供できます。
注:
現在の実装では、パスワードクラッカーが行う並列処理 / 最適化を利用しない Bouncy Castle を使用しているため、攻撃者と防御者の間に不必要な非対称性があります。
- 導入:
- 5.3
コンストラクターの概要
コンストラクター コンストラクター 説明 Argon2PasswordEncoder()
使用すべきではありません。代わりにdefaultsForSpringSecurity_v5_2()
を使用してくださいArgon2PasswordEncoder(int saltLength, int hashLength, int parallelism, int memory, int iterations)
指定されたパラメーターを使用して Argon2 パスワードエンコーダーを構築します。
メソッドのサマリー
すべてのメソッド 静的メソッド インスタンスメソッド 具象メソッド 非推奨のメソッド 修飾子と型 メソッド 説明 static Argon2PasswordEncoder
defaultsForSpringSecurity_v5_2()
使用すべきではありません。代わりにdefaultsForSpringSecurity_v5_8()
を使用してくださいstatic Argon2PasswordEncoder
defaultsForSpringSecurity_v5_8()
16 バイトのソルト長、32 バイトのハッシュ長、1 の並列処理、1 << 14 のメモリコスト、2 回の反復で Argon2 パスワードエンコーダを構築します。java.lang.String
encode(java.lang.CharSequence rawPassword)
生のパスワードをエンコードします。boolean
matches(java.lang.CharSequence rawPassword, java.lang.String encodedPassword)
ストレージから取得したエンコードされたパスワードが、エンコードされた後に送信された生のパスワードと一致することを確認します。boolean
upgradeEncoding(java.lang.String encodedPassword)
セキュリティを強化するためにエンコードされたパスワードを再度エンコードする必要がある場合は true を返し、そうでない場合は false を返します。
コンストラクターの詳細
Argon2PasswordEncoder
@Deprecated public Argon2PasswordEncoder()
使用すべきではありません。代わりにdefaultsForSpringSecurity_v5_2()
を使用してくださいソルトの長さが 16 バイト、ハッシュの長さが 32 バイト、並列処理が 1、メモリコストが 1 << 12、反復回数が 3 の Argon2 パスワードエンコーダを構築します。
Argon2PasswordEncoder
public Argon2PasswordEncoder(int saltLength, int hashLength, int parallelism, int memory, int iterations)
指定されたパラメーターを使用して Argon2 パスワードエンコーダーを構築します。- パラメーター:
saltLength
- ソルトの長さ (バイト単位)hashLength
- ハッシュの長さ (バイト単位)parallelism
- 平行度memory
- メモリコストiterations
- 反復回数
メソッドの詳細
defaultsForSpringSecurity_v5_2
@Deprecated public static Argon2PasswordEncoder defaultsForSpringSecurity_v5_2()
使用すべきではありません。代わりにdefaultsForSpringSecurity_v5_8()
を使用してくださいソルトの長さが 16 バイト、ハッシュの長さが 32 バイト、並列処理が 1、メモリコストが 1 << 12、反復回数が 3 の Argon2 パスワードエンコーダを構築します。- 戻り値:
Argon2PasswordEncoder
- 導入:
- 5.8
defaultsForSpringSecurity_v5_8
public static Argon2PasswordEncoder defaultsForSpringSecurity_v5_8()
16 バイトのソルト長、32 バイトのハッシュ長、1 の並列処理、1 << 14 のメモリコスト、2 回の反復で Argon2 パスワードエンコーダを構築します。- 戻り値:
Argon2PasswordEncoder
- 導入:
- 5.8
encode
public java.lang.String encode(java.lang.CharSequence rawPassword)
インターフェースからコピーされた説明:PasswordEncoder
生のパスワードをエンコードします。一般に、適切なエンコードアルゴリズムは、8 バイト以上のランダムに生成されたソルトと組み合わせた SHA-1 以上のハッシュを適用します。- 次で指定:
- インターフェース
PasswordEncoder
のencode
matches
public boolean matches(java.lang.CharSequence rawPassword, java.lang.String encodedPassword)
インターフェースからコピーされた説明:PasswordEncoder
ストレージから取得したエンコードされたパスワードが、エンコードされた後に送信された生のパスワードと一致することを確認します。パスワードが一致する場合は true を返し、一致しない場合は false を返します。保管されたパスワード自体は決してデコードされません。- 次で指定:
- インターフェース
PasswordEncoder
のmatches
- パラメーター:
rawPassword
- エンコードおよび照合する生のパスワードencodedPassword
- 比較するストレージからのエンコードされたパスワード- 戻り値:
- エンコード後の生のパスワードがストレージからのエンコードされたパスワードと一致する場合は true
upgradeEncoding
public boolean upgradeEncoding(java.lang.String encodedPassword)
インターフェースからコピーされた説明:PasswordEncoder
セキュリティを強化するためにエンコードされたパスワードを再度エンコードする必要がある場合は true を返し、そうでない場合は false を返します。デフォルトの実装は常に false を返します。- 次で指定:
- インターフェース
PasswordEncoder
のupgradeEncoding
- パラメーター:
encodedPassword
- チェックするエンコードされたパスワード- 戻り値:
- セキュリティを強化するためにエンコードされたパスワードを再度エンコードする必要がある場合は true、そうでない場合は false。