Wyprowadzanie kluczy PBKDF2 i HKDF

Wyprowadź klucz z hasła lub sekretu za pomocą PBKDF2 albo HKDF, wybierając sól, liczbę iteracji lub etykietę info, funkcję skrótu i długość wyniku, a następnie odczytaj go jako hex lub base64 — wszystko w przeglądarce.

Ładowanie narzędzia…

Wyprowadzanie kluczy PBKDF2 i HKDFRozciągnij hasło do klucza PBKDF2 lub rozwiń sekret o wysokiej entropii w nazwane podklucze za pomocą HKDF, bez wysyłania czegokolwiek poza Twoje urządzenie. Wybierz funkcję skrótu, ustaw sól i liczbę iteracji (PBKDF2) lub etykietę info (HKDF), wskaż, ile bitów wyniku potrzebujesz, i skopiuj wyprowadzony klucz jako hex lub base64. Każdy bajt jest obliczany lokalnie za pomocą natywnego Web Crypto API (crypto.subtle.deriveBits), więc Twoje hasło i sekret nigdy nie trafiają na serwer.

Czym jest Wyprowadzanie kluczy PBKDF2 i HKDF?

Wyprowadzanie kluczy PBKDF2 i HKDF to darmowe narzędzie działające w przeglądarce, które uruchamia dwie funkcje wyprowadzania kluczy najczęściej używane przez programistów. PBKDF2 (Password-Based Key Derivation Function 2) celowo spowalnia atak siłowy, powtarzając HMAC wiele tysięcy razy, i zamienia ludzkie hasło wraz z solą w klucz o stałej długości. HKDF (HMAC-based Key Derivation Function) przyjmuje sekret, który ma już wystarczającą entropię, i rozwija go w jeden lub więcej podkluczy powiązanych z kontekstem za pomocą etykiety info, co jest idealne do wyprowadzania oddzielnych kluczy szyfrowania i uwierzytelniania z jednego sekretu nadrzędnego. Inżynierowie backendu, recenzenci bezpieczeństwa oraz każdy, kto pisze kod logowania lub szyfrowania, używają go do testowania wektorów, odtwarzania wyprowadzenia z serwera lub generowania kluczy do jednorazowego zadania. Użyj przełącznika PBKDF2/HKDF, aby zmienić algorytm, wybierz SHA-256, SHA-384, SHA-512 lub SHA-1, ustaw długość wyniku w bitach i odczytaj wynik jako hex lub base64.

Jak używać Wyprowadzanie kluczy PBKDF2 i HKDF

  1. Wybierz PBKDF2 lub HKDF przełącznikiem u góry, dopasowując do funkcji używanej przez Twój kod lub wektor testowy.
  2. Wpisz lub wklej swoje hasło (PBKDF2) lub sekret o wysokiej entropii (HKDF) w polu Sekret, a następnie wprowadź sól.
  3. Dla PBKDF2 ustaw liczbę iteracji; dla HKDF ustaw opcjonalną etykietę info, która wiąże klucz z kontekstem.
  4. Wybierz funkcję skrótu (SHA-256, SHA-384, SHA-512 lub SHA-1) oraz długość wyniku w bitach.
  5. Przełącz przełącznik hex / base64 na potrzebne kodowanie i skopiuj wyprowadzony klucz przyciskiem kopiowania.

Przykłady

PBKDF2 — klucz 256-bitowy z hasła

Wejście

Sekret: correct horse battery staple
Sól: a1b2c3d4
Skrót: SHA-256, Iteracje: 100000, Bity: 256

Wyjście

64-znakowy ciąg szesnastkowy (32 bajty), odtwarzalny dla tego samego hasła, soli, skrótu i liczby iteracji

HKDF — podklucz powiązany z kontekstem z sekretu nadrzędnego

Wejście

Sekret: 9f8e7d6c…(klucz nadrzędny)
Sól: session-2024
Info: aes-gcm-encryption
Skrót: SHA-256, Bity: 256

Wyjście

inny klucz 256-bitowy niż z tego samego sekretu z Info: hmac-authentication, więc jeden sekret nadrzędny daje niezależne podklucze

Krótszy wynik jako base64

Wejście

Bity: 128, kodowanie przełączone na base64

Wyjście

24-znakowy ciąg base64 kodujący pierwszych 16 wyprowadzonych bajtów

Najczęściej zadawane pytania

Czy moje hasło lub sekret jest gdzieś wysyłane?
Nie. Sekret, sól i info pozostają w Twojej przeglądarce. Klucz jest wyprowadzany lokalnie za pomocą Web Crypto API (crypto.subtle.deriveBits) i nic nie jest przesyłane na żaden serwer ani tam przechowywane, więc narzędzie działa offline, a Twoje dane nigdy nie opuszczają strony.
Kiedy używać PBKDF2, a kiedy HKDF?
Użyj PBKDF2, aby wyprowadzić klucz z ludzkiego hasła o niskiej entropii — jego liczba iteracji spowalnia atak siłowy. Użyj HKDF, gdy masz już sekret o wysokiej entropii (klucz nadrzędny lub współdzielony sekret) i chcesz rozwinąć go w jeden lub więcej oddzielnych podkluczy za pomocą etykiety info. HKDF jest szybki i nie zastępuje rozciągania hasła w PBKDF2.
Dlaczego moja długość wyniku jest zaokrąglana?
deriveBits z Web Crypto działa w pełnych bajtach, więc długość wyniku w bitach jest zaokrąglana do najbliższej wielokrotności 8. Statystyka pod wynikiem pokazuje rzeczywiście wyprodukowane bity i bajty.
Które funkcje skrótu i algorytmy są obsługiwane?
Oba algorytmy działają na SHA-256, SHA-384, SHA-512 lub SHA-1, czyli funkcjach skrótu, które Web Crypto przeglądarki udostępnia dla PBKDF2 i HKDF. Scrypt, Argon2 i bcrypt nie są dostępne, ponieważ przeglądarki nie implementują ich natywnie.
Czy te same dane wejściowe zawsze dadzą ten sam klucz?
Tak. Wyprowadzanie kluczy jest deterministyczne: ten sam algorytm, sekret, sól, skrót, długość wyniku i liczba iteracji (PBKDF2) lub info (HKDF) zawsze dają te same bajty, dlatego możesz tego użyć, aby odtworzyć lub zweryfikować klucz wyprowadzony przez Twój serwer.

Powiązane narzędzia