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

Современный алгоритм HKDF наряду с PBKDF2.

🛡️

Стандарт

Единый API для всех алгоритмов формирования ключей.

Старый подход
Ручной PBKDF2
Современный подход
KDF API
Начиная с JDK
25
Сложность
Продвинутый
Функции формирования ключей
Доступно

Финализировано в JDK 25 LTS (JEP 510, сент. 2025).

KDF API предоставляет стандартный интерфейс для функций формирования ключей, включая HKDF. Он заменяет неудобный шаблон SecretKeyFactory + PBEKeySpec на чистый строительный API.