クラス Argon2PasswordEncoder

java.lang.ObjectSE
org.springframework.security.crypto.argon2.Argon2PasswordEncoder
実装されたすべてのインターフェース:
PasswordEncoder

public class Argon2PasswordEncoder extends ObjectSE implements PasswordEncoder

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

注:

現在の実装では、パスワードクラッカーが行う並列処理 / 最適化を利用しない Bouncy Castle を使用しているため、攻撃者と防御者の間に不必要な非対称性があります。

導入:
5.3
  • コンストラクターのサマリー

    コンストラクター
    コンストラクター
    説明
    Argon2PasswordEncoder(int saltLength, int hashLength, int parallelism, int memory, int iterations)
    指定されたパラメーターを使用して Argon2 パスワードエンコーダーを構築します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    使用すべきではありません。
    代わりに defaultsForSpringSecurity_v5_8() を使用してください
    16 バイトのソルト長、32 バイトのハッシュ長、1 の並列処理、1 << 14 のメモリコスト、2 回の反復で Argon2 パスワードエンコーダを構築します。
    encode(CharSequenceSE rawPassword)
    生のパスワードをエンコードします。
    boolean
    matches(CharSequenceSE rawPassword, StringSE encodedPassword)
    ストレージから取得したエンコードされたパスワードが、エンコードされた後に送信された生のパスワードと一致することを確認します。
    boolean
    upgradeEncoding(StringSE encodedPassword)
    セキュリティを強化するためにエンコードされたパスワードを再度エンコードする必要がある場合は true を返し、そうでない場合は false を返します。

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
  • コンストラクターの詳細

    • Argon2PasswordEncoder

      public Argon2PasswordEncoder(int saltLength, int hashLength, int parallelism, int memory, int iterations)
      指定されたパラメーターを使用して Argon2 パスワードエンコーダーを構築します。
      パラメーター:
      saltLength - ソルトの長さ (バイト単位)
      hashLength - ハッシュの長さ (バイト単位)
      parallelism - 平行度
      memory - メモリコスト
      iterations - 反復回数
  • メソッドの詳細

    • defaultsForSpringSecurity_v5_2

      @DeprecatedSE 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 StringSE encode(CharSequenceSE rawPassword)
      インターフェースからコピーされた説明: PasswordEncoder
      生のパスワードをエンコードします。一般に、適切なエンコードアルゴリズムは、8 バイト以上のランダムに生成されたソルトと組み合わせた SHA-1 以上のハッシュを適用します。
      次で指定:
      インターフェース PasswordEncoderencode 
    • matches

      public boolean matches(CharSequenceSE rawPassword, StringSE encodedPassword)
      インターフェースからコピーされた説明: PasswordEncoder
      ストレージから取得したエンコードされたパスワードが、エンコードされた後に送信された生のパスワードと一致することを確認します。パスワードが一致する場合は true を返し、一致しない場合は false を返します。保管されたパスワード自体は決してデコードされません。
      次で指定:
      インターフェース PasswordEncodermatches 
      パラメーター:
      rawPassword - エンコードおよび照合する生のパスワード
      encodedPassword - 比較するストレージからのエンコードされたパスワード
      戻り値:
      エンコード後の生のパスワードがストレージからのエンコードされたパスワードと一致する場合は true
    • upgradeEncoding

      public boolean upgradeEncoding(StringSE encodedPassword)
      インターフェースからコピーされた説明: PasswordEncoder
      セキュリティを強化するためにエンコードされたパスワードを再度エンコードする必要がある場合は true を返し、そうでない場合は false を返します。デフォルトの実装は常に false を返します。
      次で指定:
      インターフェース PasswordEncoderupgradeEncoding 
      パラメーター:
      encodedPassword - チェックするエンコードされたパスワード
      戻り値:
      セキュリティを強化するためにエンコードされたパスワードを再度エンコードする必要がある場合は true、そうでない場合は false。