クラス 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 Argon2PasswordEncoderdefaultsForSpringSecurity_v5_2()
      使用すべきではありません。
      代わりに defaultsForSpringSecurity_v5_8() を使用してください
      static Argon2PasswordEncoderdefaultsForSpringSecurity_v5_8()
      16 バイトのソルト長、32 バイトのハッシュ長、1 の並列処理、1 << 14 のメモリコスト、2 回の反復で Argon2 パスワードエンコーダを構築します。
      java.lang.Stringencode​(java.lang.CharSequence rawPassword)
      生のパスワードをエンコードします。
      booleanmatches​(java.lang.CharSequence rawPassword, java.lang.String encodedPassword)
      ストレージから取得したエンコードされたパスワードが、エンコードされた後に送信された生のパスワードと一致することを確認します。
      booleanupgradeEncoding​(java.lang.String encodedPassword)
      セキュリティを強化するためにエンコードされたパスワードを再度エンコードする必要がある場合は true を返し、そうでない場合は false を返します。
      • クラス java.lang.Object から継承されたメソッド

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

      • 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 以上のハッシュを適用します。
        次で指定:
        インターフェース PasswordEncoderencode 
      • matches

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

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