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 构造函数。

🔒

标准接口

一致的 API 适用于不同的 KDF 算法。

🛡️

更少错误

类型安全的构建器减少参数顺序错误的风险。

旧方式
手动 PBKDF2
现代方式
KDF API
自 JDK
25
难度
高级
密钥派生函数
可用

在 JDK 25 LTS 中正式发布(JEP 510,2025 年 9 月)。

KDF API 为密钥派生函数(如 HKDF 和 PBKDF2)提供标准接口。它使用构建器模式替代笨拙的 KeySpec 构造函数,使密钥派生更加清晰且不易出错。

分享 𝕏 🦋 in