Hashe/Krypto

Argon2 Hash + Verify

Hashuj hasła za pomocą Argon2 (zwycięzca Password Hashing Competition, RFC 9106) — warianty d/i/id, z weryfikacją względem istniejącego hasha.


                    

Argon2 is the Password Hashing Competition winner and the algorithm recommended in RFC 9106 for hashing passwords. Unlike bcrypt, it deliberately demands a lot of memory, not just CPU time, which makes attacks on specialized hardware (GPUs, ASICs) much harder.

How to use it

Common uses

Things to keep in mind

The memory parameter is Argon2's main defense: the more memory hashing requires, the more expensive it is for an attacker to parallelize an attack on a GPU with limited fast memory per chip.

Argon2id is recommended for most cases: Argon2i resists side-channel attacks better, Argon2d resists GPU attacks better, and id combines both approaches.

Artykuł o tym narzędziu: Argon2: dlaczego ten algorytm wygrał konkurs na haszowanie haseł

Najczęstsze pytania

Dlaczego Argon2 jest zalecany zamiast starszych hashy, takich jak MD5 czy SHA-256, do haseł?

Argon2 jest celowo powolny i wymaga dużo pamięci, co znacznie podnosi koszt ataków brute-force oraz łamania z użyciem GPU/ASIC — w przeciwieństwie do szybkich uniwersalnych hashy jak MD5 czy SHA-256, nieodpowiednich do przechowywania haseł.

Co kontrolują parametry pamięci, iteracji i równoległości?

Koszt pamięci określa, ile RAM-u wymaga każda próba hashowania, iteracje kontrolują liczbę przebiegów, a równoległość liczbę wątków — zwiększenie któregokolwiek podnosi koszt łamania, ale spowalnia hashowanie.

Którego wariantu Argon2 użyć — d, i czy id?

Argon2id to zalecany domyślny wariant do hashowania haseł, ponieważ łączy odporność Argon2i na ataki kanałem bocznym z odpornością Argon2d na łamanie GPU.

Skąd wziął się Argon2 jako standard?

Argon2 wygrał Password Hashing Competition w 2015 roku — otwarty konkurs kryptografów, którego celem było znalezienie najlepszego algorytmu do haszowania haseł. Od tego czasu OWASP zaleca go jako priorytetowy wybór nad bcrypt.

Czy parametr równoległości tylko przyspiesza haszowanie?

Nie, ten sam parametr tak samo przyspiesza łamanie hasła atakującemu dysponującemu wielordzeniowym sprzętem, dlatego równoległość warto dobierać odpowiednio do rzeczywistej liczby rdzeni serwera, a nie zwiększać bez potrzeby.

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.

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.

PBKDF2: najstarszy standard rozciągania klucza

Dlaczego zalecana liczba iteracji PBKDF2 rośnie z każdym rokiem.

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.