Виведення ключів 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) завжди дають ті самі байти, тож ви можете використовувати це для відтворення чи перевірки ключа, який вивів ваш сервер.

Схожі інструменти