Hashe/Krypto

Bcrypt Hash + Verify

Hashuj hasła za pomocą bcrypt (z losową solą i konfigurowalnym kosztem) i weryfikuj hasło względem istniejącego hasha bcrypt.


                    

Bcrypt is a deliberately slow password-hashing algorithm: unlike MD5 or SHA-256, it intentionally requires heavy computation so that brute-forcing passwords stays impractical even if a database of hashes leaks.

How to use it

Common uses

Things to keep in mind

Pick a cost factor that keeps hashing around 100-300ms on your target server — a balance between security and login-time load.

Bcrypt truncates passwords longer than 72 bytes — characters beyond that limit are ignored by the algorithm.

Artykuł o tym narzędziu: Bcrypt: dlaczego hasła haszuje się wolno, a nie szybko

Najczęstsze pytania

Dlaczego bcrypt zawiera czynnik "cost" (koszt) lub "rounds"?

Czynnik kosztu kontroluje, ile razy hashowanie jest powtarzane wewnętrznie, więc wraz ze wzrostem wartości hashowanie staje się wykładniczo wolniejsze. Pozwala to celowo utrzymać je wystarczająco wolnym, by opierać się atakom brute-force nawet w miarę przyspieszania sprzętu.

Dlaczego hash bcrypt zawsze ma taką samą długość niezależnie od hasła?

Bcrypt generuje hash o stałej długości (zwykle 60 znaków), który koduje razem wersję algorytmu, czynnik kosztu, sól i sam hash — długość nie zależy od długości oryginalnego hasła.

Czy bcrypt wymaga osobnego pola na sól?

Nie. Sól jest generowana automatycznie i osadzana bezpośrednio w ciągu wyjściowym, więc nie musisz jej przechowywać ani zarządzać nią osobno — jest zawsze uwzględniona przy weryfikacji hasła względem hasha.

Czy istnieje ograniczenie długości hasła w bcrypt?

Tak, bcrypt przetwarza tylko pierwsze 72 bajty hasła — wszystko dłuższe jest po prostu odrzucane bez ostrzeżenia. W praktyce rzadko jest to problem, ale warto o tym pamiętać przy pracy z bardzo długimi hasłami lub znakami nie-ASCII, gdzie jeden znak może zajmować kilka bajtów.

Dlaczego bcrypt jest nadal zalecany, skoro istnieje Argon2?

Bcrypt jest sprawdzony w praktyce od dziesięcioleci, szeroko wspierany we wszystkich językach i frameworkach i pozostaje całkowicie solidnym wyborem. Argon2 jest zalecany jako priorytetowy dla nowych systemów ze względu na ochronę przed atakami z użyciem GPU/ASIC, ale bcrypt nie jest uważany za niebezpieczny — jedynie mniej odporny na wyspecjalizowany sprzęt.

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.

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.

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.