Generator bcrypt
bcrypt nadal jest jednym z najbezpieczniejszych wyborów do przechowywania haseł. Jest celowo wolny, wyprowadza własną sól i skaluje się wraz z ulepszeniami sprzętu dzięki regulowanemu parametrowi kosztu. Ten generator tworzy zgodny ze standardem hash bcrypt z hasła plaintext, aby można było zasilić użytkownika testowego, przenieść konto między systemami albo porównać wartości z istniejącym hashem zapisanym w kolumnie users.password.
Jak zahaszować hasło bcrypt
-
1
Wpisz hasło plaintext
Do 72 bajtów: bcrypt po cichu obcina wszystko powyżej tego limitu.
-
2
Wybierz współczynnik kosztu
12 to domyślny poziom w tym generatorze; 10 to szybszy wybór dla starszych systemów; 13 to najsilniejsze ustawienie tego narzędzia. Każde +1 w przybliżeniu podwaja czas haszowania.
-
3
Generowana jest losowa sól
16 bajtów soli pochodzi z kryptograficznego RNG i zostaje osadzonych w wynikowym ciągu hasha.
-
4
Skopiuj hash
Wynik to samopisujący się ciąg w rodzaju `$2b$12$...`, który zawiera wersję, koszt, sól i digest.
Anatomia hasha bcrypt
$2b$12$mE2n5YqWjKqT9tXg.OQPoeeHZJ9hdSvOt5wFdRRQwl6yE1vWWY3z6
| | | |
| | salt (22 znaki Base64) digest (31 znaków Base64)
| cost (2 cyfry, 4-31)
version (2a, 2b, 2y, wszystko bcrypt)
Cały ciąg ma 60 znaków. Kolumny typu VARCHAR(60) albo CHAR(60) są standardowym schematem.
Zalecenia dotyczące współczynnika kosztu
| Cost | Przybliżony czas na hash (CPU 2024) | Zastosowanie |
|---|---|---|
| 10 | ~80 ms | Starsza wartość domyślna, nadal akceptowalna |
| 12 | ~300 ms | Obecnie zalecany punkt bazowy |
| 13 | ~600 ms | Aplikacje o wyższym bezpieczeństwie |
| 14 | ~1.2 s | Poza zakresem tego narzędzia (maksimum 13) |
Każde zwiększenie podwaja współczynnik pracy. Jeśli opóźnienie logowania poniżej 500 ms jest krytyczne, trzymaj się 10-12.
Bajt wersji: 2a vs 2b vs 2y
$2a$, Oryginalna specyfikacja z 1999 roku. Większość bibliotek emituje hashe2a.$2b$, Rewizja z 2014 roku naprawiająca błąd obcinania w crypt_blowfish. Preferowana dla nowych hashy.$2y$, Tag specyficzny dla PHP, funkcjonalnie równoważny$2b$.
Wszystkie trzy weryfikują się wzajemnie; różni się tylko tag w ciągu hasha.
Przed czym chroni bcrypt
- Rainbow tables, Unikalna sól dla każdego hasha niweluje gotowe tablice wyszukiwania.
- Łamanie GPU/ASIC, Harmonogram klucza Blowfish jest zależny od pamięci i nieprzyjazny dla GPU. Nie tak nieprzyjazny jak Argon2, ale nadal wolny do brute force.
- Wycieki baz danych, Plaintext nie da się odzyskać z hasha bez brute force.
Przed czym bcrypt NIE chroni: słabe hasła (używaj minimalnej długości i sprawdzaj listy wycieków), credential stuffing (używaj drugiego czynnika), phishing.
Limit 72 bajtów
bcrypt używa tylko pierwszych 72 bajtów hasła. Dłuższe wejścia są obcinane po cichu, dlatego wiele bibliotek zaleca dziś wstępne haszowanie hasła SHA-256 przed podaniem go do bcrypt. Nowoczesne alternatywy (Argon2, scrypt) nie mają takiego limitu.
Najczęściej zadawane pytania
Tak do przechowywania haseł, przy koszcie ≥ 12. OWASP nadal wymienia go jako akceptowalny algorytm. Argon2id jest preferowanym wyborem dla nowych systemów, ale migracja starych hashy bcrypt ma niski priorytet.
Ponieważ sól jest generowana losowo dla każdego hasha. Weryfikacja bierze sól z zapisanego hasha, ponownie haszuje z nią podane hasło i porównuje wyniki.
Większość bibliotek tego nie udostępnia, i słusznie, przewidywalne sole niweczą ich sens. Używaj soli generowanej przez bibliotekę; to bezpieczna ścieżka.
Każde +1 w przybliżeniu podwaja czas haszowania, więc koszt 13 trwa około 8 razy dłużej niż koszt 10. Pozostań w zakresie 10-12, chyba że aplikacja naprawdę potrzebuje dodatkowej siły.
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 Oluşturucu [TR]
- Generador bcrypt [ES]
- مولد bcrypt [AR]
- Générateur bcrypt [FR]
- bcrypt-generator [NL]
- bcrypt 생성기 [KO]
- Generator bcrypt [ID]
- bcrypt Generator [EN]
- Trình tạo bcrypt [VI]
- bcrypt 生成器 [ZH]
- bcryptジェネレーター [JA]
- ตัวสร้าง bcrypt [TH]
- Gerador de bcrypt [PT]
- bcrypt-Generator [DE]
- bcrypt-generator [SV]
- Generatore bcrypt [IT]
- Генератор bcrypt [RU]