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
- Hash: enter a password and set a cost factor — a higher number means slower, more secure hashing.
- Every hash call generates a fresh random salt, so the same password produces a different hash each time — that's expected and normal.
- Verify: paste a password and an existing bcrypt hash to check whether they match, without hashing manually yourself.
Common uses
- Manually checking that a backend hashes passwords correctly before storing them.
- Generating a test bcrypt hash for seed data or fixtures during development.
- Debugging a failed login by comparing an entered password against the stored hash.
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.