Przejdź do treści

Generator Bcrypt

Utwórz hash hasła bcrypt z losową 16-bajtową solą i współczynnikiem kosztu od 4 do 12. Narzędzie zwraca standardowy modularny ciąg kryptograficzny zaczynający się od $2a$, akceptowany przez PHP password_verify, Node.js bcrypt, Spring Security i większość frameworków. Użyj go do przygotowania użytkowników testowych, zresetowania hasła administratora w bazie danych lub sprawdzenia własnego kodu haszującego. Hasło nigdy nie jest wyświetlane ani przechowywane.

Resetuj

Najczęściej zadawane pytania

Czym jest bcrypt?

Bcrypt to funkcja haszująca hasła z 1999 oparta na szyfrze Blowfish. Łączy losową sól z regulowanym kosztem, więc każdy dodatkowy poziom kosztu podwaja nakład pracy potrzebny atakującemu na każdą próbę. Nadal jest powszechnie obsługiwanym rozwiązaniem do przechowywania haseł.

Co oznacza ciąg wyjściowy?

Hash, taki jak $2a$10$ z 53 kolejnymi znakami, zawiera wersję 2a, koszt 10, 22-znakową sól i 31-znakowy hash, zapisane w alfabecie Base64 właściwym dla bcrypt. Zapisz cały ciąg, ponieważ weryfikator odczytuje z niego sól i koszt.

Jaki współczynnik kosztu wybrać?

Narzędzie umożliwia wybór kosztu od 4 do 12 i domyślnie ustawia 10, co jest częstą wartością domyślną w frameworkach. Każdy kolejny poziom podwaja czas, więc koszt 12 zajmuje około cztery razy więcej czasu niż koszt 10. W środowisku produkcyjnym wybierz najwyższy koszt, który Twoje serwery mogą obsłużyć w ciągu około 100–250 milisekund.

Dlaczego koszt jest ograniczony do 12?

Wyższe koszty oznaczają kilka sekund na obliczenie jednego hasha i pozwoliłyby pojedynczemu żądaniu zająć serwer na długi czas. Koszt 12 jest już wysoki dla większości aplikacji, a w razie potrzeby możesz ponownie obliczyć hash z wyższym kosztem we własnym środowisku.

Dlaczego to samo hasło za każdym razem daje inny hash?

Narzędzie generuje nową losową 16-bajtową sól dla każdego hasha. Różne sole dają różne ciągi, ale wszystkie są poprawnie weryfikowane dla tego samego hasła. Dzięki temu atakujący nie mogą używać wstępnie obliczonych tabel.

Czy istnieje limit długości hasła?

Tak. Bcrypt używa tylko pierwszych 72 bajtów hasła, dlatego narzędzie odrzuca dłuższe hasła zamiast po cichu ignorować ich resztę. Znaki spoza ASCII zajmują po kilka bajtów w UTF-8.

Czy PHP lub Laravel zaakceptują hash $2a$?

Tak. PHP password_verify, Laravel, Symfony i wtyczki WordPress używające password_hash akceptują hashe $2a$, $2b$ i $2y$, które różnią się wyłącznie historycznymi poprawkami błędów. Node.js bcrypt, bcryptjs, Python bcrypt i Spring Security również akceptują $2a$.

Czy moje hasło jest przechowywane lub zapisywane w logach?

Nie. Hasło służy wyłącznie do obliczenia skrótu podczas żądania. Jest usuwane z odpowiedzi i nigdy nie trafia do logów ani pamięci.

Czy używać bcrypt czy Argon2?

OWASP zaleca nowszy Argon2id, ponieważ jest odporny na ataki wymagające dużej ilości pamięci, co zwiększa koszt ataków z użyciem GPU. bcrypt jest nadal akceptowalny i ma bardzo szerokie wsparcie bibliotek, więc stanowi dobry wybór, gdy Argon2 nie jest dostępny.

Jak sprawdzić hasło względem skrótu bcrypt?

Użyj w tej witrynie weryfikatora Bcrypt albo wywołaj funkcję verify w swoim frameworku. Nigdy nie porównuj bezpośrednio ciągów bcrypt, ponieważ nowy skrót tego samego hasła zawsze wygląda inaczej.

O OneClick Pro

OneClick Pro to bezpłatny zbiór ponad 150 narzędzi internetowych do codziennej pracy: konwertowania obrazów i jednostek, formatowania i walidowania kodu, sprawdzania domen i SEO oraz pracy z tekstem, datami i liczbami. Każde narzędzie działa bez rejestracji i subskrypcji, a wprowadzone dane służą wyłącznie do obliczenia wyniku i nigdy nie są przechowywane. Używaj go jako podręcznego zestawu narzędzi do jednorazowych zadań lub dodaj do zakładek te, z których korzystasz każdego dnia.