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.
Wyprowadzanie kluczy PBKDF2 i HKDF — Rozcią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
- Wybierz PBKDF2 lub HKDF przełącznikiem u góry, dopasowując do funkcji używanej przez Twój kod lub wektor testowy.
- Wpisz lub wklej swoje hasło (PBKDF2) lub sekret o wysokiej entropii (HKDF) w polu Sekret, a następnie wprowadź sól.
- Dla PBKDF2 ustaw liczbę iteracji; dla HKDF ustaw opcjonalną etykietę info, która wiąże klucz z kontekstem.
- Wybierz funkcję skrótu (SHA-256, SHA-384, SHA-512 lub SHA-1) oraz długość wyniku w bitach.
- 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
Szyfrowanie tekstu AES (AES-GCM + PBKDF2)
Szyfruj i odszyfrowuj tekst za pomocą AES-256-GCM, używając klucza wyprowadzonego z hasła (PBKDF2 SHA-256, losowa sól), w całości w przeglądarce i bez przesyłania danych.
Hash Argon2 i scrypt
Zahashuj hasło za pomocą Argon2id lub scrypt i zweryfikuj hash Argon2 względem hasła — w całości w przeglądarce.
Generator i weryfikator hashy Bcrypt
Wygeneruj hash hasła bcrypt z tekstu jawnego o wybranym współczynniku kosztu lub zweryfikuj hasło względem istniejącego hasha bcrypt, w całości w przeglądarce.
Generator mnemonika BIP39
Wygeneruj losową frazę odzyskiwania BIP39 o długości od 12 do 24 słów w kilku językach lub przekształć istniejący mnemonik z powrotem w surową entropię, w całości w przeglądarce.