Security 上級

標準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 25 LTS(JEP 510、2025年9月)で正式採用

KDF APIはHKDFを含む鍵導出関数の標準インターフェースを提供します。複雑なSecretKeyFactory + PBEKeySpecのパターンをクリーンなビルダーAPIに置き換えます。

共有 𝕏 🦋 in