Виведення ключів 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
- Оберіть PBKDF2 або HKDF перемикачем угорі, відповідно до функції, яку використовує ваш код чи тестовий вектор.
- Введіть або вставте свій пароль (PBKDF2) чи високоентропійний секрет (HKDF) у поле «Секрет», потім введіть сіль.
- Для PBKDF2 задайте кількість ітерацій; для HKDF задайте необовʼязкову мітку info, що привʼязує ключ до контексту.
- Оберіть хеш (SHA-256, SHA-384, SHA-512 чи SHA-1) і довжину виводу в бітах.
- Перемкніть тумблер 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) завжди дають ті самі байти, тож ви можете використовувати це для відтворення чи перевірки ключа, який вивів ваш сервер.
Схожі інструменти
Шифрування тексту AES (AES-GCM + PBKDF2)
Шифруйте та розшифровуйте текст за допомогою AES-256-GCM, використовуючи ключ, виведений із парольної фрази (PBKDF2 SHA-256, випадкова сіль), повністю у вашому браузері та без завантажень.
Хеш Argon2 і scrypt
Хешуйте пароль за допомогою Argon2id або scrypt і перевіряйте хеш Argon2 на відповідність паролю — повністю у вашому браузері.
Генератор і перевірник bcrypt-хешів
Створюйте bcrypt-хеш пароля з відкритого тексту з обраним фактором вартості або перевіряйте пароль за наявним bcrypt-хешем — повністю у вашому браузері.
Генератор мнемонічних фраз BIP39
Згенеруйте випадкову фразу відновлення BIP39 з 12–24 слів кількома мовами або перетворіть наявну мнемонічну фразу назад на її вихідну ентропію — повністю у вашому браузері.