Powrót do narzędzi

Generator i weryfikator hashy Bcrypt

Zamień hasło na hash bcrypt $2b$ lub sprawdź hasło względem hashu, który już masz. Hashowanie działa w Web Workerze wewnątrz twojej przeglądarki — nic, co wpiszesz, nigdzie nie jest wysyłane.

Dane wejściowe

Hasło i koszt

Dla każdego hashu losowana jest nowa 16-bajtowa sól, więc to samo hasło daje za każdym razem inny hash. To jest cel soli, a nie błąd.

10
4 · szybko14 · wolno

Koszt 10 oznacza 2^10 = 1,024 rund ustawiania klucza. Każdy kolejny stopień podwaja pracę — zarówno dla kogoś łamiącego skradziony plik z hasłami, jak i dla twojego serwera przy każdym pojedynczym logowaniu. Większość systemów produkcyjnych mieści się między 10 a 12.

Wszystkie trzy prefiksy dają identyczne bajty hashu dla haseł poniżej 72 bajtów; różni się tylko etykieta. Wbudowana funkcja crypt() w PHP nie rozpoznaje $2b$, więc hash $2b$ po cichu nie przejdzie password_verify(). Wybierz $2y$ dla PHP.

Hashowanie działa w Web Workerze wewnątrz tej karty. Hasło nigdy nie jest wysyłane do Wespner ani nikogo innego — nie ma żądania, które mogłoby je wysłać.

Wynik

hash bcrypt

Naciśnij „Generuj hash”.

Koszt, zmierzony tutaj

Ile kosztuje cię to ustawienie

Szacunek: jeden hash jest mierzony w tej karcie przy koszcie 8, a każdy inny koszt jest ekstrapolowany z niego przez podwajanie. Twój sprzęt i przeglądarka decydują o wyniku.

Jedno sprawdzenie tutaj
mierzenie…
Prób na sekundę
lista 14,344,391 słów

Te liczby to jeden wątek JavaScript. Prawdziwy atakujący uruchamia natywny kod na stelażu GPU i jest o rzędy wielkości szybszy — właśnie dlatego współczynnik kosztu musi być niewygodny, a nie wygodny. Ten sam suwak decyduje też, ile CPU spala każde z twoich własnych logowań.

Odczytywanie ciągu

Co oznacza tych 60 znaków

$2b$12$LQv3c1yqBWVHxkd0LHAkCOYUtYgBuLIjrsGrDUgYqZbY7d0RfPbtq

wersja
$2b$
koszt
12 → 2^12 = 4,096 rund
sól (22)
LQv3c1yqBWVHxkd0LHAkCO
hash (31)
YUtYgBuLIjrsGrDUgYqZbY7d0RfPbtq

Oba bloki używają własnego alfabetu base64 bcrypta, który zaczyna się od ./ i umieszcza cyfry na końcu — to nie jest standardowy base64, a dekodowanie go tak, jakby był, daje błędne bajty. To, wraz z podziałem 22/31, jest szybkim sposobem na sprawdzenie, czy ciąg naprawdę jest hashem bcrypt, a nie czymś, co tylko na niego wygląda.

Wybór algorytmu

bcrypt, scrypt czy Argon2?

To narzędzie celowo obsługuje tylko bcrypt. Oto kiedy jest właściwą odpowiedzią, a kiedy nie.

bcrypt
Trudny dla CPU, 1999

Celowo powolny, ale opiera się tylko na czasie CPU i stałych 4 KB pamięci. GPU i FPGA równoległą go znacznie lepiej niż nowsze konstrukcje. To wciąż całkiem szanowany wybór, wspierany dosłownie wszędzie, a jego limit 72 bajtów hasła jest najbardziej zaskakującym mankamentem.

scrypt
Trudny dla pamięci, 2009

Dodaje regulowany koszt pamięci, więc atakujący potrzebuje RAM-u na każdą próbę, nie tylko rdzeni. Trudniejszy do taniego zrównoleglenia niż bcrypt.

Argon2id
Obecna rekomendacja

Zwycięzca Password Hashing Competition z 2015 roku i to, co OWASP obecnie zaleca dla nowych systemów: osobne pokrętła czasu, pamięci i równoległości, a wariant id odporny zarówno na ataki GPU, jak i side-channel. Jeśli zaczynasz od zera i twoja platforma go obsługuje, użyj go. Jeśli utrzymujesz coś, co już przechowuje hashe $2y$, bcrypt przy rozsądnym koszcie nie jest sytuacją awaryjną — zamiast tego przehashuj przy kolejnym logowaniu.

Dowód

Sprawdź tę stronę względem opublikowanych wektorów testowych

Narzędzie do hashowania, które prosi o zaufanie, powinno dać się sprawdzić. To są referencyjne wektory bcrypt używane przez implementacje pochodne od OpenBSD; strona przelicza każdy z nich z własnej soli i porównuje znak po znaku, a następnie hashuje i ponownie weryfikuje jednorazowe hasło przy dwóch współczynnikach kosztu.

Ta partia uruchamia 6 opublikowanych wektorów plus dwa pełne cykle.

Prowadzisz własny serwer gier?

Serwery gier Wespner z ochroną DDoS, dyskami NVMe i aktywacją w kilka minut.

Zobacz hosting