クラス Pbkdf2PasswordEncoder

  • 実装されたすべてのインターフェース:
    PasswordEncoder

    public class Pbkdf2PasswordEncoder
    extends java.lang.Object
    implements PasswordEncoder
    PBKDF2 を使用する PasswordEncoder 実装:
    • 構成可能なランダムソルト値の長さ (デフォルトは 8 バイトです)
    • 構成可能な反復回数 (デフォルトは 185000 です)
    • 構成可能な出力ハッシュ幅 (デフォルトは 256 断片です)
    • 構成可能な鍵導出関数 (Pbkdf2PasswordEncoder.SecretKeyFactoryAlgorithm を参照してください)
    • ランダムソルトに追加された構成可能なシークレット (デフォルトは空です)
    このアルゴリズムは、ソルト、シークレット、パスワードの連結されたバイトに対して呼び出されます。
    導入:
    4.1
    • コンストラクターのサマリー

      コンストラクター  
      コンストラクター 説明
      Pbkdf2PasswordEncoder()
      追加の秘密値なしで PBKDF2 パスワードエンコーダーを構築します。
      Pbkdf2PasswordEncoder​(java.lang.CharSequence secret)
      パスワードハッシュにも含まれる秘密の値を使用して、標準のパスワードエンコーダーを構築します。
      Pbkdf2PasswordEncoder​(java.lang.CharSequence secret, int saltLength)
      シークレット値とソルト長を使用して、標準のパスワードエンコーダーを構築します。
      Pbkdf2PasswordEncoder​(java.lang.CharSequence secret, int iterations, int hashWidth)
      シークレット値、反復、ハッシュ幅を使用して標準のパスワードエンコーダーを構築します。
      Pbkdf2PasswordEncoder​(java.lang.CharSequence secret, int saltLength, int iterations, int hashWidth)
      シークレット値、ソルト長、反復、ハッシュ幅を使用して標準のパスワードエンコーダーを構築します。
    • メソッドのサマリー

      すべてのメソッド   インスタンスメソッド   具象メソッド  
      修飾子と型 メソッド 説明
      java.lang.Stringencode​(java.lang.CharSequence rawPassword)
      生のパスワードをエンコードします。
      booleanmatches​(java.lang.CharSequence rawPassword, java.lang.String encodedPassword)
      ストレージから取得したエンコードされたパスワードが、エンコードされた後に送信された生のパスワードと一致することを確認します。
      voidsetAlgorithm​(Pbkdf2PasswordEncoder.SecretKeyFactoryAlgorithm secretKeyFactoryAlgorithm)
      使用するアルゴリズムを設定します。
      voidsetEncodeHashAsBase64​(boolean encodeHashAsBase64)
      結果のハッシュを Base64 としてエンコードするかどうかを設定します。
      • クラス java.lang.Object から継承されたメソッド

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

      • Pbkdf2PasswordEncoder

        public Pbkdf2PasswordEncoder()
        追加のシークレット値なしで PBKDF2 パスワードエンコーダーを構築します。8 バイトのソルト長、185000 反復、256 断片のハッシュ幅があります。デフォルトは、このクラスが追加されたときにパスワードを検証するために 0.5 秒を目指すことに基づいています。ユーザーは、パスワード検証を自分のシステムに合わせて調整する必要があります。
      • Pbkdf2PasswordEncoder

        public Pbkdf2PasswordEncoder​(java.lang.CharSequence secret)
        パスワードハッシュにも含まれているシークレット値を使用して、標準のパスワードエンコーダーを構築します。8 バイトのソルト長、185000 反復、256 断片のハッシュ幅があります。
        パラメーター:
        secret - エンコーディングプロセスで使用される秘密鍵 (共有すべきではない)
      • Pbkdf2PasswordEncoder

        public Pbkdf2PasswordEncoder​(java.lang.CharSequence secret,
                                     int saltLength)
        シークレット値とソルト長を使用して、標準のパスワードエンコーダーを構築します。185000 の反復と 256 断片のハッシュ幅があります。
        パラメーター:
        secret - 秘密
        saltLength - ソルトの長さ (バイト単位)
        導入:
        5.5
      • Pbkdf2PasswordEncoder

        public Pbkdf2PasswordEncoder​(java.lang.CharSequence secret,
                                     int iterations,
                                     int hashWidth)
        シークレット値、反復、ハッシュ幅を使用して標準のパスワードエンコーダーを構築します。ソルトの長さは 8 バイトになります。
        パラメーター:
        secret - 秘密
        iterations - 反復回数。ユーザーは自分のシステムで約 0.5 秒かかることを目指す必要があります。
        hashWidth - ハッシュのサイズ (ビット単位)
      • Pbkdf2PasswordEncoder

        public Pbkdf2PasswordEncoder​(java.lang.CharSequence secret,
                                     int saltLength,
                                     int iterations,
                                     int hashWidth)
        シークレット値、ソルト長、反復、ハッシュ幅を使用して標準のパスワードエンコーダーを構築します。
        パラメーター:
        secret - 秘密
        saltLength - ソルトの長さ (バイト単位)
        iterations - 反復回数。ユーザーは自分のシステムで約 0.5 秒かかることを目指す必要があります。
        hashWidth - ハッシュのサイズ (ビット単位)
        導入:
        5.5
    • メソッドの詳細

      • setAlgorithm

        public void setAlgorithm​(Pbkdf2PasswordEncoder.SecretKeyFactoryAlgorithm secretKeyFactoryAlgorithm)
        使用するアルゴリズムを設定します。SecretKeyFactory アルゴリズムSEを参照
        パラメーター:
        secretKeyFactoryAlgorithm - 使用するアルゴリズム (つまり、SecretKeyFactoryAlgorithm.PBKDF2WithHmacSHA1SecretKeyFactoryAlgorithm.PBKDF2WithHmacSHA256SecretKeyFactoryAlgorithm.PBKDF2WithHmacSHA512)
        導入:
        5.0
      • setEncodeHashAsBase64

        public void setEncodeHashAsBase64​(boolean encodeHashAsBase64)
        結果のハッシュを Base64 としてエンコードするかどうかを設定します。デフォルトは false で、16 進数でエンコードされます。
        パラメーター:
        encodeHashAsBase64 - Base64 としてエンコードする場合は true、16 進数を使用する場合は false (default)
      • 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