インターフェース 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 でサポートされている範囲外のアルゴリズム / パラメーターを使用して生成されたパスワードハッシュは検証できません)

関連事項: