Функции формирования ключей
Формирование криптографических ключей с помощью стандартного 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
Функции формирования ключей
Доступно
Финализировано в JDK 25 LTS (JEP 510, сент. 2025).
Как это работает
KDF API предоставляет стандартный интерфейс для функций формирования ключей, включая HKDF. Он заменяет неудобный шаблон SecretKeyFactory + PBEKeySpec на чистый строительный API.
Связанная документация
Доказательство