Hashe/Krypto

Scrypt Hash + Verify

Hashuj hasła za pomocą scrypt (RFC 7914, memory-hard KDF) z weryfikacją względem istniejącego hasha.


                    

Scrypt (RFC 7914) was one of the first memory-hard password-hashing algorithms: it deliberately requires a lot of RAM, not just CPU time, to make parallel brute-forcing on GPUs and ASICs harder.

How to use it

Common uses

Things to keep in mind

The N parameter (memory cost) increases both required memory and compute time exponentially — tune it to your server's actual capacity.

Scrypt has been superseded by Argon2 (the official Password Hashing Competition winner) as the recommended choice for new systems, though scrypt itself still isn't considered unsafe.

Artykuł o tym narzędziu: Scrypt: dlaczego algorytm potrzebuje tak dużo pamięci

Najczęstsze pytania

Czym scrypt różni się od bcrypt czy PBKDF2?

Scrypt jest celowo wymagający zarówno pamięciowo, jak i pod względem CPU, co czyni go znacznie droższym do złamania przy użyciu GPU lub niestandardowego sprzętu ASIC w porównaniu z bcrypt czy PBKDF2, które głównie opierają się brute-force'owi opartemu na CPU.

Co kontrolują parametry N, r i p?

N określa koszt CPU/pamięci (musi być potęgą dwójki), r określa rozmiar bloku wpływający na zużycie pamięci na operację, a p określa równoległość — zwiększenie któregokolwiek podnosi koszt zasobów zarówno dla legalnego użycia, jak i ataków.

Czy scrypt to wciąż dobry wybór w porównaniu z Argon2?

Scrypt pozostaje solidny i sprawdzony w boju, ale dla nowych systemów zazwyczaj zaleca się Argon2 (zwycięzcę Password Hashing Competition), ponieważ oferuje bardziej precyzyjną kontrolę nad pamięcią i odpornością na ataki bocznokanałowe.

Ile pamięci realnie zużywa scrypt?

Około 128 × N × r bajtów na jedno obliczenie. Przy typowych parametrach (N=16384, r=8) to około 16 megabajtów na jeden hash — pomijalne dla jednego logowania, ale istotne przy tysiącach jednoczesnych uwierzytelnień na serwerze.

Gdzie jeszcze stosuje się scrypt, poza haszowaniem haseł?

Scrypt jest znany jako algorytm proof-of-work w niektórych kryptowalutach (na przykład Litecoin) — wybrano go właśnie ze względu na odporność na kopanie na wyspecjalizowanych urządzeniach ASIC, charakterystyczną dla bitcoina z jego SHA-256.

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ł.

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.