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-13; 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
Jest wysyłane na nasz serwer przez szyfrowane połączenie, bo to tam wykonywane jest haszowanie i weryfikacja. Nie jest zapisywane ani logowane i nigdy nie trafia do linku 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
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 plików Base64
Koduj dowolny plik (PDF, ZIP, obraz, plik wykonywalny) do tekstu Base64 do osadzania w JSON, e-mailu, YAML albo data URI. Działa lokalnie, bez uploadu.
Koder szyfru Cezara
Szyfruj i odszyfrowuj tekst szyfrem Cezara. Dowolne przesunięcie 1-25, obsługa ROT13 jako przypadku specjalnego, zachowanie interpunkcji i wielkości liter.
Koder i dekoder Base58
Koduj tekst UTF-8 lub bajty szesnastkowe i bezpiecznie dekoduj Base58 z alfabetem Bitcoin, Ripple albo Flickr.
Weryfikator sum kontrolnych
Oblicz sumę kontrolną MD5, SHA-1, SHA-256, SHA-384, SHA-512 lub CRC32 dowolnego tekstu i porównaj ją z oczekiwaną wartością, aby uzyskać jednoznaczny werdykt zgodności lub niezgodności.
Koder szyfru Atbash
Koduj lub dekoduj tekst szyfrem Atbash, hebrajskim podstawieniem mapującym A-Z na Z-A. Ta sama operacja szyfruje i odszyfrowuje.
Narzędzie jest dostępne w innych językach
- bcrypt Hashジェネレーター [JA]
- bcrypt-Hash-Generator [DE]
- Generator Hash bcrypt [ID]
- bcrypt 해시 생성기 [KO]
- bcrypt 哈希生成器 [ZH]
- Generador de Hash bcrypt [ES]
- bcrypt-hashgenerator [SV]
- Trình tạo hash bcrypt [VI]
- bcrypt Hash Oluşturucu [TR]
- bcrypt-hashgenerator [NL]
- ตัวสร้าง bcrypt Hash [TH]
- bcrypt Hash Generator [EN]
- Générateur de hachage bcrypt [FR]
- Gerador de Hash bcrypt [PT]
- مولد Hash bcrypt [AR]
- Generatore di hash bcrypt [IT]
- Генератор bcrypt-хешей [RU]