標準KDF APIを使って暗号鍵を導出する。
コード比較
✕ Java 8
SecretKeyFactory factory =
SecretKeyFactory.getInstance(
"PBKDF2WithHmacSHA256");
KeySpec spec = new PBEKeySpec(
password, salt, 10000, 256);
SecretKey key =
factory.generateSecret(spec);
✓ Java 25
var kdf = KDF.getInstance("HKDF-SHA256");
SecretKey key = kdf.deriveKey(
"AES",
KDF.HKDFParameterSpec
.ofExtract()
.addIKM(inputKey)
.addSalt(salt)
.thenExpand(info, 32)
.build()
);
このコードに問題がありますか? お知らせください。
モダンな方法が優れている理由
クリーンなAPI
面倒なKeySpecコンストラクターの代わりにビルダーパターンを使用。
HKDFサポート
PBKDF2に加えて現代的なHKDFアルゴリズムも利用できます。
標準化
すべての鍵導出アルゴリズムに対する統一APIを提供。
旧来のアプローチ
手動PBKDF2
モダンなアプローチ
KDF API
JDKバージョン
25
難易度
上級
JDKサポート
鍵導出関数
利用可能
JDK 25 LTS(JEP 510、2025年9月)で正式採用
仕組み
KDF APIはHKDFを含む鍵導出関数の標準インターフェースを提供します。複雑なSecretKeyFactory + PBEKeySpecのパターンをクリーンなビルダーAPIに置き換えます。
関連ドキュメント