Generator hashy bcrypt
Generuj HDR
Wpisz koszt i czas trwania
Od czasu do czasu masz hash bcrypt ze starej kopii zapasowej i hasło plaintext, i musisz sprawdzić, czy pasują. Albo masz hasło i chcesz hash, który powstałby przy danym współczynniku kosztu. To narzędzie robi jedno i drugie: wpisz hasło, a wygeneruje świeży hash; wklej hash i kandydata, a powie, czy weryfikacja się udała — używając tego samego porównania w stałym czasie co produkcyjna kontrola logowania.
Generuj albo weryfikuj bcrypt
-
1
Wybierz tryb
Wygeneruj nowy hash z hasła albo zweryfikuj hasło względem istniejącego hasha `$2a$` / `$2b$` / `$2y$`.
-
2
Dla generowania: wpisz plaintext i koszt
Koszt 4-14; 10-12 to normalny zakres. Dla każdego hasha tworzona jest losowa sól 16-bajtowa.
-
3
Dla weryfikacji: wklej hash i plaintext
Narzędzie wyciąga sól i koszt z hasha, po czym ponownie haszuje plaintext z tymi samymi parametrami.
-
4
Odczytaj wynik
Tryb generowania kopiuje 60-znakowy hash; tryb weryfikacji zwraca zielone dopasowanie albo czerwony brak dopasowania.
Wnętrze trybu weryfikacji
Dla zapisanego hasha takiego jak:
$2b$12$mE2n5YqWjKqT9tXg.OQPoeeHZJ9hdSvOt5wFdRRQwl6yE1vWWY3z6
Weryfikator:
- Parsuje wersję (
2b), koszt (12), sól (pierwsze 22 znaki po koszcie) i digest (ostatnie 31 znaków). - Uruchamia bcrypt ponownie na kandydacie plaintext z wyciągniętą solą i kosztem.
- Porównuje wynikowy digest z oryginałem, używając porównania w stałym czasie.
Udane porównanie daje true; każda różnica daje false.
Porównanie w stałym czasie
Porównanie dwóch ciągów naiwnym == kończy się, gdy tylko różni się bajt — to kanał boczny czasu, który przy wystarczającej liczbie próbek może ujawniać hash cyfra po cyfrze. Produkcyjne kontrole haseł (i to narzędzie) używają porównania w stałym czasie, które zawsze sprawdza każdy bajt, więc czas decyzji nie zależy od liczby pasujących bajtów początkowych.
Typowe przypadki diagnostyczne
| Objaw | Prawdopodobna przyczyna |
|---|---|
| Weryfikacja nie przechodzi, a hasła jesteś pewien | Końcowe białe znaki albo BOM w wejściu. Usuń oba. |
Weryfikacja nie przechodzi, wersja 2y |
Niektóre biblioteki nie lubią 2y; jest poprawne i zgodne. Dalej haszuj już jako 2b. |
| Hash za krótki / źle uformowany | To nie jest hash bcrypt. MD5 ma 32 znaki hex, SHA-1 ma 40, bcrypt ma 60 ze znakami $ jako separatorami. |
| Ostrzeżenie o niezgodnym koszcie | Zapisany koszt jest niższy niż minimum Twojej polityki. Zahashuj ponownie przy następnym udanym logowaniu. |
Rehash przy logowaniu
Dobra praktyka: gdy użytkownik zaloguje się poprawnie, sprawdź, czy zapisany hash ma koszt niższy niż obecna polityka. Jeśli tak, zahashuj hasło ponownie z nowym kosztem i zaktualizuj bazę. W ciągu kilku miesięcy podnosisz całą bazę użytkowników bez proszenia kogokolwiek o zmianę hasła.
Czego narzędzie nie robi
- Masowa weryfikacja — Zbudowane dla jednego hasha naraz.
- Łamanie albo brute force — Ataki słownikowe i rainbow-table są celowo poza zakresem.
- Odzyskiwanie plaintext — bcrypt jest jednokierunkowy; jeśli nie pamiętasz hasła, jedyną drogą jest reset.
Najczęściej zadawane pytania
Nie. Haszowanie i weryfikacja odbywają się w przeglądarce. Ani plaintext, ani hash nie opuszczają strony.
Sól jest generowana losowo dla każdego hasha. Właśnie o to chodzi — dwaj użytkownicy z tym samym hasłem dostają różne hashe, co niweczy rainbow tables.
Tak, dokładnie to robi tryb weryfikacji: wklejasz hash, który masz, wklejasz hasło kandydata, a narzędzie potwierdza albo odrzuca dopasowanie.
Tak. Wszystkie nowoczesne warianty współdziałają — digest jest zgodny między wersjami; różni się tylko tag. Niektóre stare hashe $2$ z systemów z okolic 2000 roku mogą wymagać biblioteki z jawną obsługą legacy.
Powiązane narzędzia
Szyfrowanie i odszyfrowywanie AES
Szyfruj i odszyfrowuj mało wrażliwy tekst z użyciem szyfrów AES OpenSSL. Hasło jest haszowane SHA-256, a wynik Base64 zawiera IV oraz szyfrogram.
Koder szyfru A1Z26
Koduj tekst szyfrem A1Z26 (A=1, B=2, ... Z=26) albo dekoduj sekwencję liczb z powrotem na litery, z własnym separatorem.
Koder szyfru Atbash
Koduj lub dekoduj tekst szyfrem Atbash, hebrajskim podstawieniem mapującym A-Z na Z-A. Ta sama operacja szyfruje i odszyfrowuje.
Generator bcrypt
Wygeneruj hash bcrypt z hasła plaintext. Regulowany współczynnik kosztu od 4 do 14, zgodny z Laravel, Django, Node i PHP.
Koder i dekoder Base32
Koduj i dekoduj ciągi Base32 alfabetem RFC 4648. Przydatne dla sekretów TOTP, tokenów niewrażliwych na wielkość liter i identyfikatorów wpisywanych przez ludzi.
Koder i dekoder Base85
Koduj i dekoduj Base85 w wariantach Adobe Ascii85 (PostScript/PDF) albo Z85 (ZeroMQ). Bardziej kompaktowy niż Base64 dla danych binarnych.