Hashe/Krypto

PBKDF2 Hash + Verify

Wyprowadź klucz za pomocą PBKDF2 (RFC 8018) z hasła, HMAC-SHA1/256/384/512, z konfigurowalną liczbą iteracji.


                    

PBKDF2 (RFC 8018) applies HMAC to a password and salt repeatedly to deliberately slow down computation — it's the oldest of the standardized algorithms for password hashing and encryption key derivation.

How to use it

Common uses

Things to keep in mind

Unlike bcrypt and Argon2, PBKDF2 isn't memory-hard — it only requires CPU time, so it's less resistant to attacks on GPUs with many parallel compute units.

The recommended iteration count rises over time in NIST and OWASP guidance as hardware gets faster — check against current recommendations periodically.

Artykuł o tym narzędziu: PBKDF2: najstarszy standard rozciągania klucza

Najczęstsze pytania

Czym PBKDF2 różni się od bcrypt czy Argon2 przy hashowaniu haseł?

PBKDF2 wielokrotnie stosuje funkcję hash HMAC, by spowolnić brute-force, ale w przeciwieństwie do bcrypt czy Argon2 nie jest wymagający pamięciowo, więc jest stosunkowo tańszy do złamania przy użyciu GPU. Wciąż jest szeroko stosowany i zatwierdzony przez FIPS, ale dla nowych systemów zwykle preferuje się Argon2.

Co kontroluje liczba iteracji i jak wysoka powinna być?

Liczba iteracji określa, ile razy stosowany jest bazowy hash, bezpośrednio zamieniając szybkość na odporność na brute-force. Aktualne wytyczne zalecają setki tysięcy iteracji dla SHA-256, zwiększane z czasem wraz z przyspieszaniem sprzętu.

Dlaczego PBKDF2 potrzebuje soli?

Sól zapewnia, że identyczne hasła dają różne wyniki, uniemożliwiając atakującym użycie wcześniej obliczonych tablic tęczowych i zmuszając ich do atakowania każdego hasha osobno.

Czy ma znaczenie, jakiej bazowej funkcji skrótu używa PBKDF2?

Tak. Starsze implementacje często domyślnie używały HMAC-SHA1 — w konstrukcji HMAC nie jest to krytyczna podatność, ale współczesne zalecenia jednoznacznie rekomendują HMAC-SHA256 lub silniejszy, ze względu na większy margines bezpieczeństwa bez odczuwalnej utraty szybkości.

Gdzie jeszcze wykorzystuje się PBKDF2, poza przechowywaniem haseł?

PBKDF2 jest szeroko stosowany do wyprowadzania kluczy kryptograficznych szyfrowania z haseł — na przykład w WPA2/WPA3 dla Wi-Fi oraz w wielu formatach zaszyfrowanych kontenerów plikowych.

Artykuły: Hashe/Krypto

Hash Generator: czym różnią się MD5, SHA-1 i SHA-256

Dlaczego MD5 nadal jest używane do sprawdzania integralności plików, ale nie do haseł.

Checksum Verifier: jak sprawdzić, czy plik nie jest uszkodzony

Dlaczego zgodna suma kontrolna potwierdza integralność pliku, ale nie to, kto go stworzył.

HMAC: czym skrót z kluczem różni się od zwykłego skrótu

Dlaczego zwykły SHA-256 nie chroni przed sfałszowaniem wiadomości, a HMAC tak.

Bcrypt: dlaczego hasła haszuje się wolno, a nie szybko

Dlaczego szybki SHA-256 to zły wybór do haseł, a wolny bcrypt to właściwy.

UUID: jak generuje się identyfikatory, które prawie nigdy się nie powtarzają

Dlaczego UUID v4 można generować niezależnie na milionach maszyn bez ryzyka kolizji.

Generator haseł: co naprawdę czyni hasło silnym

Dlaczego długie hasło ze słów słownikowych jest silniejsze niż krótkie z symbolami i cyframi.

AES: jak działa szyfrowanie symetryczne

Dlaczego ten sam klucz szyfruje i deszyfruje dane w AES, i czym różni się to od szyfrowania asymetrycznego.

Argon2: dlaczego ten algorytm wygrał konkurs na haszowanie haseł

Jak Argon2 lepiej broni się przed atakami z użyciem kart graficznych niż starsze algorytmy haszowania haseł.

Scrypt: dlaczego algorytm potrzebuje tak dużo pamięci

Dlaczego scrypt celowo wymaga dużo pamięci, aby utrudnić łamanie na urządzeniach ASIC.

TOTP: jak działają jednorazowe kody w aplikacjach uwierzytelniających

Dlaczego kod w Google Authenticator działa bez internetu i synchronizuje się z serwerem tylko przez czas.

X.509: co jest wewnątrz certyfikatu SSL

Co dokładnie przegląda przeglądarka w certyfikacie witryny, zanim pokaże zieloną kłódkę.

PGP: jak działa szyfrowanie kluczem publicznym i prywatnym

Dlaczego można swobodnie udostępniać klucz publiczny PGP, ale nigdy klucz prywatny.