インターフェース Pbkdf2PasswordHash

  • すべてのスーパーインターフェース:
    PasswordHash

    public interface Pbkdf2PasswordHash
    extends PasswordHash
    このインターフェースは、組み込みの Pbkdf2PasswordHash 実装を表します。

    組み込みデータベース IdentityStore で Pbkdf2PasswordHash を使用するには、このインターフェース型を DatabaseIdentityStoreDefinition アノテーションの hashAlgorithm 値として構成します。

    Pbkdf2PasswordHash のパラメーターを構成するには、DatabaseIdentityStoreDefinition アノテーションの hashAlgorithmParameters 値として指定します。

    組み込みの実装は、次の構成可能なパラメーターをサポートする必要があります。

    Pbkdf2PasswordHash.Algorithm      // default "PBKDF2WithHmacSHA256"
    Pbkdf2PasswordHash.Iterations     // default 2048, minimum 1024
    Pbkdf2PasswordHash.SaltSizeBytes  // default 32, minimum 16
    Pbkdf2PasswordHash.KeySizeBytes   // default 32, minimum 16
     

    そして、次の PBKDF2 アルゴリズム:

    PBKDF2WithHmacSHA224
    PBKDF2WithHmacSHA256
    PBKDF2WithHmacSHA384
    PBKDF2WithHmacSHA512
     
    アルゴリズム名は、対応するアルゴリズムについて Java 暗号化アーキテクチャの標準アルゴリズム名のドキュメントSEによってドキュメント化された文字列リテラル名です。

    PasswordHash.generate(char[]) によって生成され、PasswordHash.verify(char[], String) によって消費されるエンコードされた形式は、次のとおりです。

    <algorithm>:<iterations>:<base64(salt)>:<base64(hash)>
     
    説明:
    • algorithm- ハッシュの生成に使用されるアルゴリズム
    • 反復 - ハッシュの生成に使用される反復の数
    • base64(salt) - ハッシュの生成に使用されるソルト、base64 エンコード
    • base64(hash) - ハッシュ値、base64 エンコード

    ハッシュの生成に使用されるアルゴリズムとパラメーターはハッシュと共に格納されるため、組み込みの Pbkdf2PasswordHash 実装は、現在構成されている値とは異なるアルゴリズムとパラメーター値を使用して生成されたハッシュを検証できます。つまり、既存のパスワードハッシュを確認する機能に影響を与えることなく、構成パラメーターを変更できます。

    Pbkdf2PasswordHash でサポートされている範囲外のアルゴリズム / パラメーターを使用して生成されたパスワードハッシュは検証できません)

    関連事項:
    DatabaseIdentityStoreDefinition.hashAlgorithm(), DatabaseIdentityStoreDefinition.hashAlgorithmParameters()