Вывод ключей PBKDF2 и HKDF

Выведите ключ из пароля или секрета с помощью PBKDF2 или HKDF, выбрав соль, число итераций или метку info, хеш и длину вывода, и прочитайте его в hex или base64 — полностью в вашем браузере.

Загрузка инструмента…

Вывод ключей PBKDF2 и HKDFРастяните пароль в ключ PBKDF2 или разверните высокоэнтропийный секрет в именованные подключи с помощью HKDF — и ничто не покинет ваше устройство. Выберите хеш, задайте соль и число итераций (PBKDF2) или метку info (HKDF), укажите, сколько бит вывода вам нужно, и скопируйте выведенный ключ в hex или base64. Каждый байт вычисляется локально через нативный Web Crypto API (crypto.subtle.deriveBits), поэтому ваш пароль и секрет никогда не попадают на сервер.

Что такое Вывод ключей PBKDF2 и HKDF?

Вывод ключей PBKDF2 и HKDF — это бесплатный браузерный инструмент, который выполняет две функции вывода ключей, к которым разработчики обращаются чаще всего. PBKDF2 (Password-Based Key Derivation Function 2) намеренно замедляет перебор, повторяя HMAC многие тысячи раз, и превращает человеческий пароль вместе с солью в ключ фиксированной длины. HKDF (HMAC-based Key Derivation Function) берёт секрет, у которого уже достаточно энтропии, и разворачивает его в один или несколько привязанных к контексту подключей с помощью метки info, что идеально подходит для вывода отдельных ключей шифрования и аутентификации из одного мастер-секрета. Бэкенд-инженеры, специалисты по безопасности и все, кто пишет код входа или шифрования, используют его, чтобы проверить тестовые векторы, воспроизвести вывод сервера или сгенерировать ключи для разовой задачи. Используйте переключатель PBKDF2/HKDF для смены алгоритма, выберите SHA-256, SHA-384, SHA-512 или SHA-1, задайте длину вывода в битах и прочитайте результат в hex или base64.

Как пользоваться Вывод ключей PBKDF2 и HKDF

  1. Выберите PBKDF2 или HKDF переключателем вверху, в соответствии с функцией, которую использует ваш код или тестовый вектор.
  2. Введите или вставьте свой пароль (PBKDF2) либо высокоэнтропийный секрет (HKDF) в поле «Секрет», затем введите соль.
  3. Для PBKDF2 задайте число итераций; для HKDF задайте необязательную метку info, которая привязывает ключ к контексту.
  4. Выберите хеш (SHA-256, SHA-384, SHA-512 или SHA-1) и длину вывода в битах.
  5. Переключите тумблер hex / base64 на нужную кодировку и скопируйте выведенный ключ кнопкой копирования.

Примеры

PBKDF2 — 256-битный ключ из пароля

Ввод

Секрет: correct horse battery staple
Соль: a1b2c3d4
Хеш: SHA-256, Итерации: 100000, Биты: 256

Вывод

hex-строка из 64 символов (32 байта), воспроизводимая при тех же пароле, соли, хеше и числе итераций

HKDF — привязанный к контексту подключ из мастер-секрета

Ввод

Секрет: 9f8e7d6c…(мастер-ключ)
Соль: session-2024
Info: aes-gcm-encryption
Хеш: SHA-256, Биты: 256

Вывод

256-битный ключ, отличный от того, что даёт тот же секрет с Info: hmac-authentication, поэтому один мастер порождает независимые подключи

Более короткий вывод в base64

Ввод

Биты: 128, кодировка переключена на base64

Вывод

base64-строка из 24 символов, кодирующая первые 16 выведенных байт

Часто задаваемые вопросы

Отправляется ли мой пароль или секрет куда-либо?
Нет. Секрет, соль и info остаются в вашем браузере. Ключ выводится локально через Web Crypto API (crypto.subtle.deriveBits), и ничто не загружается и не хранится на каком-либо сервере, поэтому инструмент работает офлайн, а ваши данные никогда не покидают страницу.
Когда использовать PBKDF2, а когда HKDF?
Используйте PBKDF2 для вывода ключа из низкоэнтропийного человеческого пароля — его число итераций замедляет перебор. Используйте HKDF, когда у вас уже есть высокоэнтропийный секрет (мастер-ключ или общий секрет) и вы хотите развернуть его в один или несколько отдельных подключей через метку info. HKDF быстр и не заменяет растягивание пароля PBKDF2.
Почему длина вывода округляется?
deriveBits в Web Crypto работает с целыми байтами, поэтому длина вывода в битах округляется до ближайшего кратного 8. Статистика под результатом показывает фактически полученные биты и байты.
Какие хеши и алгоритмы поддерживаются?
Оба алгоритма работают с SHA-256, SHA-384, SHA-512 или SHA-1 — хешами, которые Web Crypto браузера предоставляет для PBKDF2 и HKDF. Scrypt, Argon2 и bcrypt не предлагаются, потому что браузеры не реализуют их нативно.
Всегда ли одни и те же входные данные дают один и тот же ключ?
Да. Вывод ключей детерминирован: одни и те же алгоритм, секрет, соль, хеш, длина вывода и число итераций (PBKDF2) или info (HKDF) всегда дают одни и те же байты, поэтому вы можете использовать это для воспроизведения или проверки ключа, который вывел ваш сервер.

Похожие инструменты