Generator i weryfikator skrótów bcrypt
Generuj i weryfikuj skróty bcrypt haseł online — regulowany koszt, prefiksy $2b$/$2a$/$2y$. W 100% w przeglądarce; Twoje hasło nigdy nie jest wysyłane.
Czym jest bcrypt?
Bcrypt to funkcja haszująca hasła zaprojektowana specjalnie do bezpiecznego przechowywania haseł. Zamiast trzymać hasło w tekście jawnym, serwer przechowuje jednokierunkowy skrót bcrypt; gdy użytkownik się loguje, serwer haszuje przesłane hasło w ten sam sposób i sprawdza, czy oba skróty są zgodne. Bcrypt jest oparty na szyfrze Blowfish i został zaprojektowany przez Nielsa Provosa i Davida Mazièresa w 1999 roku, z jedną celową cechą, która odróżnia go od ogólnego przeznaczenia skrótów takich jak SHA-256: jest wolny celowo, a z czasem możesz uczynić go jeszcze wolniejszym za pomocą regulowanego współczynnika kosztu, w miarę jak sprzęt staje się szybszy.
Skrót bcrypt to pojedynczy, samoopisujący się 60-znakowy ciąg — na przykład $2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq. Pakuje cztery części: wersję ($2b$), koszt (12, logarytmiczny współczynnik nakładu pracy), 22-znakową sól w Base64 (sól) oraz 31-znakowy cyfrowy odcisk w Base64 (cyfrowy odcisk). Ponieważ sól jest losowa i osadzona w skrócie, to samo hasło za każdym razem daje inny skrót — co pokonuje tęczowe tablice i ukrywa fakt, że dwóch użytkowników wybrało to samo hasło. Weryfikacja odczytuje sól i koszt z powrotem z przechowywanego skrótu i ponownie haszuje kandydata, więc bcrypt nigdy nie musi (i nie może) odwrócić skrótu, aby odzyskać hasło.
To narzędzie działa w całości w Twojej przeglądarce, korzystając z dołączonej implementacji bcrypt — żadne hasło ani skrót nigdy nie są wysyłane. Użyj go, aby wygenerować skrót z wybranym kosztem i prefiksem, aby zweryfikować hasło względem istniejącego skrótu oraz aby odczytać anatomię skrótu. Naturalnie współgra z innymi narzędziami bezpieczeństwa: zabezpiecz katalog za pomocą HTTP Basic Auth, używając naszego generatora htpasswd (który może emitować wpisy bcrypt bezpośrednio), wybij silne hasło do zahaszowania naszym generatorem haseł, a po nasz generator SHA-256 sięgnij, gdy potrzebujesz szybkiej sumy kontrolnej ogólnego przeznaczenia, a nie wolnego skrótu hasła. Jeśli zastanawiasz się, którym algorytmem przechowywać hasła, porównaj opcje w artykule bcrypt kontra Argon2 kontra scrypt.
// Node.js — bcryptjs / bcrypt (emits $2b$)
const bcrypt = require('bcrypt');
const hash = await bcrypt.hash('correct horse battery staple', 12);
// -> $2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq
const ok = await bcrypt.compare('correct horse battery staple', hash); // true
# Python — bcrypt
import bcrypt
hashed = bcrypt.hashpw(b'correct horse battery staple', bcrypt.gensalt(12))
bcrypt.checkpw(b'correct horse battery staple', hashed) # True
# PHP — password_hash (emits $2y$)
$hash = password_hash('correct horse battery staple', PASSWORD_BCRYPT, ['cost' => 12]);
password_verify('correct horse battery staple', $hash); // true
# Apache htpasswd CLI — bcrypt entry to stdout (-B bcrypt, -b inline, -n stdout)
htpasswd -Bbn admin 'correct horse battery staple'
# -> admin:$2y$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq Kluczowe funkcje
Generowanie skrótów bcrypt
Wytwórz standardowy 60-znakowy skrót bcrypt z dowolnego hasła ze świeżą, losową solą. Każde kliknięcie daje inny prawidłowy skrót, dokładnie tak, jak robiłby to prawdziwy magazyn haseł.
Regulowany współczynnik kosztu
Stroj współczynnik nakładu pracy od 4 do 15 (12 to nowoczesny domyślny wybór). Wyczuj, jak każdy krok mniej więcej podwaja czas obliczeń, abyś mógł wybrać koszt, który jest mocny, a jednocześnie wystarczająco szybki przy logowaniu.
Wybór prefiksu wersji
Emituj $2b$ (aktualny standard bcryptjs), $2y$ (PHP / htpasswd Apache) lub $2a$ (oryginalny). Wszystkie są wymienne na potrzeby weryfikacji w różnych bibliotekach.
Weryfikacja hasła względem skrótu
Wklej przechowywany skrót i kandydujące hasło, aby natychmiast potwierdzić, czy są zgodne — ponownie haszując z osadzoną solą i kosztem, nigdy nie odszyfrowując. Idealne do debugowania nieudanego logowania.
Rozkład anatomii skrótu
Zobacz dowolny skrót bcrypt rozdzielony na wersję, koszt, sól i cyfrowy odcisk, tak aby struktura ciągu $2b$12$... była oczywista na pierwszy rzut oka.
W 100% po stronie klienta
Całe haszowanie i weryfikacja odbywają się lokalnie w Twojej przeglądarce. Żadne hasło ani skrót nigdy nie są wysyłane na serwer, więc możesz pracować z prawdziwymi danymi uwierzytelniającymi prywatnie.
Przykłady generatora bcrypt
skrót bcrypt (koszt 12, $2b$)
hasło: correct horse battery staple koszt: 12 prefiks: $2b$
$2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq
Skrót bcrypt przy koszcie 12 z prefiksem $2b$. Sól jest losowa, więc to samo hasło za każdym razem daje inny skrót — a mimo to wszystkie z nich weryfikują się względem oryginalnego hasła.
Zweryfikuj hasło względem skrótu
hasło: correct horse battery staple skrót: $2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq
✓ Zgodne — hasło jest poprawne dla tego skrótu
Weryfikacja nie odszyfrowuje skrótu. Bcrypt ponownie haszuje kandydujące hasło, używając soli i kosztu osadzonych w przechowywanym skrócie, a następnie porównuje wynik. Zgodność oznacza, że hasło jest poprawne.
Rozkład anatomii skrótu
$2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq
wersja: $2b$ · koszt: 12 · sól: dUSFKqT1FCMYZ6hcQfsxuO · cyfrowy odcisk: NizEqcX8IGK8snfVSowP5Uu.TDJoPUq
Każdy skrót bcrypt sam siebie opisuje: znacznik wersji, dwucyfrowy koszt, 22-znakowa sól w Base64 i 31-znakowy cyfrowy odcisk w Base64 — wszystko w jednym 60-znakowym ciągu. Narzędzie rozdziela te części, abyś mógł odczytać je na pierwszy rzut oka.
Jak korzystać z generatora bcrypt
- 1
Wpisz hasło i wybierz koszt
Na karcie Generuj wpisz hasło lub kliknij Losowe hasło. Wybierz współczynnik kosztu (4–15; 12 to nowoczesny domyślny wybór) i prefiks wersji — $2b$, $2a$ lub $2y$ — pasujący do Twojego stosu technologicznego.
- 2
Wygeneruj skrót
Skrót bcrypt jest obliczany lokalnie ze świeżą, losową solą i pojawia się jako pojedynczy 60-znakowy ciąg $2b$12$.... Kliknij Kopiuj, aby go przenieść, lub wygeneruj ponownie, aby uzyskać nowy solony skrót.
- 3
Odczytaj anatomię lub zweryfikuj
Panel anatomii rozdziela skrót na wersję, koszt, sól i cyfrowy odcisk. Przełącz się na kartę Weryfikuj, aby wkleić przechowywany skrót i hasło oraz natychmiast potwierdzić, czy są zgodne.
Common Errors
Próba odszyfrowania skrótu
Bcrypt jest jednokierunkowy; nie ma odszyfrowywania. Aby sprawdzić hasło, zweryfikuj je względem skrótu, zamiast próbować odwrócić cyfrowy odcisk.
bcrypt.decrypt(hash) // no such operation
bcrypt.compare(password, hash) // returns true / false
Ustawienie zbyt niskiego kosztu
Niski koszt, taki jak 4 czy 6, haszuje niemal natychmiast, co także pozwala atakującym szybko łamać wykradzione skróty siłą. Używaj 12 jako punktu odniesienia.
cost: 4 // far too fast, weak against brute force
cost: 12 // modern default, resists brute force
Oczekiwanie tego samego skrótu dwa razy
Ponieważ sól jest losowa, ponowne zahaszowanie tego samego hasła daje inny ciąg. Porównuj za pomocą weryfikacji, nigdy przez sprawdzanie dwóch skrótów pod kątem równości bajtów.
hash(pw) === storedHash // fails — different salts
bcrypt.compare(pw, storedHash) // correct check
Typowe przypadki użycia
- Zasiej skrót hasła w bazie danych
- Wygeneruj skrót bcrypt dla konta administratora lub testowego i wstaw go bezpośrednio do tabeli użytkowników, abyś mógł się zalogować bez uprzedniego budowania pełnego przepływu rejestracji.
- Debuguj nieudane logowanie
- Zweryfikuj znane dobre hasło względem przechowywanego skrótu, aby potwierdzić, czy sam skrót jest poprawny, izolując błąd od kodu uwierzytelniania.
- Wybierz właściwy współczynnik kosztu
- Generuj na kilku poziomach kosztu na własnym sprzęcie, aby wyczuć, jak długo każdy trwa, a następnie wybierz współczynnik nakładu pracy, który opiera się atakom siłowym, nie spowalniając rzeczywistych logowań.
- Twórz wpisy htpasswd / Basic Auth
- Wytwórz skrót bcrypt $2y$ dla danych uwierzytelniających Apache, Docker Registry lub Caddy, a następnie umieść go w wierszu user:hash dla HTTP Basic Auth.
- Buduj dane testowe
- Wybij deterministyczne względem hasła skróty bcrypt, aby zasiać testy integracyjne przepływu logowania lub resetowania hasła bez stawiania prawdziwego serwera uwierzytelniania.
- Audytuj znaleziony skrót
- Odczytaj anatomię ciągu bcrypt w konfiguracji lub zrzucie, aby sprawdzić jego współczynnik kosztu, i zweryfikuj go względem oczekiwanego hasła, aby potwierdzić zgodność.
Szczegóły techniczne
- Oparty na Blowfish, adaptacyjny koszt
- Bcrypt wyprowadza swój skrót z kosztownej konfiguracji klucza szyfru Blowfish, powtórzonej 2^koszt razy. Podniesienie kosztu o jeden podwaja nakład pracy, utrzymując funkcję wolną wobec ataków siłowych w miarę ulepszania sprzętu.
- 128-bitowa losowa sól
- Każdy skrót osadza 16-bajtową (128-bitową) losową sól, zakodowaną w Base64 jako 22 znaki po koszcie. Sól sprawia, że każdy skrót jest unikalny, więc identyczne hasła nigdy nie współdzielą cyfrowego odcisku, a tęczowe tablice nie mają zastosowania.
- Samoopisujący się format 60-znakowy
- Wynik to $wersja$koszt$sól+odcisk — stały 60-znakowy ciąg niosący wszystko, co potrzebne do jego weryfikacji. Nie jest wymagana osobna kolumna soli ani magazyn parametrów.
- Limit 72 bajtów hasła
- Bcrypt haszuje tylko pierwsze 72 bajty hasła; cokolwiek poza tym jest po cichu ignorowane. Dla bardzo długich fraz hasłowych częstym środkiem zaradczym jest wstępne haszowanie (na przykład za pomocą SHA-256) przed bcrypt.
- Weryfikuj, nie odszyfrowuj
- Bcrypt jest jednokierunkowy. Weryfikacja ponownie uruchamia haszowanie kandydującego hasła, używając soli i kosztu sparsowanych z przechowywanego skrótu, a następnie porównuje cyfrowe odciski w stałym czasie. Nie ma operacji, która odzyskuje tekst jawny.
- Uwagi i zastrzeżenia dla uczciwości
- Skróty są obliczane lokalnie i nigdy nie są sprawdzane względem działającego systemu. Skopiowane skróty oraz każde wpisane hasło żyją w Twoim schowku i w pamięci przeglądarki — traktuj je jak sekrety i wyczyść schowek po wklejeniu ich do środowiska produkcyjnego.
Dobre praktyki
- Używaj kosztu 12 lub wyższego
- Koszt 12 to nowoczesny punkt odniesienia; podnoś go w kierunku 14 dla wrażliwych systemów, dopóki opóźnienie logowania pozostaje akceptowalne. Oceniaj okresowo na nowo — to, co było wystarczająco wolne pięć lat temu, dziś jest tanie do zaatakowania.
- Nigdy nie przechowuj ani nie loguj tekstu jawnego
- Przechowuj wyłącznie skrót bcrypt, nigdy oryginalne hasło, i trzymaj hasła z dala od logów i komunikatów o błędach. Cała wartość bcrypt jest stracona, jeśli tekst jawny wycieknie obok niego.
- Pozwól bcrypt zająć się solą
- Bcrypt generuje i osadza dla Ciebie bezpieczną losową sól. Nie dostarczaj własnej statycznej soli ani nie używaj jej ponownie — to losowa sól na skrót pokonuje tęczowe tablice.
- Pamiętaj o limicie 72 bajtów
- Jeśli akceptujesz długie frazy hasłowe, pamiętaj, że bcrypt ignoruje bajty powyżej 72. Rozważ wstępne haszowanie za pomocą SHA-256 lub oceń Argon2id, gdy bardzo długie dane wejściowe muszą być w pełni objęte.
Najczęstsze pytania o generator bcrypt
Czy korzystanie z generatora bcrypt online jest bezpieczne?
Jak wygenerować skrót bcrypt online?
$2b$ dla większości nowoczesnych stosów technologicznych, $2y$ dla PHP i Apache albo $2a$ dla oryginalnego identyfikatora. Skrót bcrypt jest obliczany natychmiast w Twojej przeglądarce ze świeżą, losową solą i pojawia się jako pojedynczy 60-znakowy ciąg $2b$12$..., który możesz skopiować jednym kliknięciem. Nic nie jest wysyłane: hasło ani skrót nigdy nie opuszczają Twojego urządzenia. Generuj ponownie w dowolnej chwili, aby uzyskać kolejny prawidłowy skrót dla tego samego hasła, ponieważ każdy z nich niesie inną losową sól. Czy skrót bcrypt można odszyfrować lub odwrócić?
Jakiego współczynnika kosztu (work factor) powinienem użyć?
Jaka jest różnica między $2a$, $2b$ i $2y$?
$2a$ to oryginalny, szeroko stosowany identyfikator; $2b$ to poprawiona, aktualna wersja, którą emituje biblioteka bcryptjs i większość nowoczesnych implementacji; a $2y$ to identyfikator używany przez PHP oraz htpasswd Apache. Na potrzeby weryfikacji są wymienne — skrót wygenerowany tutaj z dowolnym prefiksem zweryfikuje się poprawnie w różnych bibliotekach, ponieważ wszystkie uruchamiają tę samą podstawową funkcję. Wybierz prefiks, którego oczekuje Twój stos technologiczny, jeśli potrzebujesz zgodności co do bajtu. Jak zweryfikować hasło względem skrótu bcrypt?
$2b$12$...) oraz kandydujące hasło, a narzędzie natychmiast powie Ci, czy są zgodne. Działa to przez wyodrębnienie soli i kosztu osadzonych w skrócie, ponowne zahaszowanie kandydującego hasła z tymi dokładnymi parametrami i porównanie nowego cyfrowego odcisku z przechowywanym — bez żadnego odszyfrowywania. Tak właśnie system logowania sprawdza hasło: nigdy nie odzyskuje tekstu jawnego, jedynie potwierdza, że ponowne zahaszowanie przesłanego hasła odtwarza przechowywany skrót. bcrypt kontra Argon2 kontra scrypt — którego użyć?
Dlaczego skrót bcrypt jest za każdym razem inny?
Powiązane narzędzia
Zobacz wszystkie narzędzia →Dekoder JWT
Narzędzia bezpieczeństwa
Dekoduj JWT online darmowym dekoderem JWT. Sprawdź header, payload, signature, claims i wygaśnięcie. W 100% w przeglądarce — token nie opuszcza urządzenia.
Koder i generator JWT
Narzędzia bezpieczeństwa
Darmowy generator i koder JWT online. Zbuduj header i payload, podpisz HS256, RS256 lub ES256 natychmiast. W 100% w przeglądarce — sekret i klucz nie opuszczają urządzenia.
Generator MD5 hash i sum kontrolnych plików
Narzędzia bezpieczeństwa
Generuj hashe MD5, SHA-256, SHA-1 oraz SHA-512 online za darmo. Hashuj tekst lub pliki w przeglądarce, weryfikuj sumy kontrolne i kopiuj wyniki. Bez rejestracji.
Generator haseł — konfigurowalny, silny i bezpieczny
Narzędzia bezpieczeństwa
Wygeneruj silne losowe hasła natychmiast — za darmo, w 100% w przeglądarce. Dostosuj długość i znaki, partia do 50 z analizą entropii.
Generator SHA-1 hash (160-bitowy, przestarzały)
Narzędzia bezpieczeństwa
Generuj hash SHA-1 online — 40-znakowy wynik hex, bez przesyłania. Narzędzie dla odcisków Git, weryfikacji starych certyfikatów i audytów migracji. Dane nie opuszczają urządzenia.
Generator SHA-256 hash i sum kontrolnych
Narzędzia bezpieczeństwa
Generuj hashe SHA-256 online za darmo. Hashuj tekst lub pliki w przeglądarce, weryfikuj sumy kontrolne, kopiuj 64-znakowy wynik hex. Bez rejestracji — dane nie opuszczają strony.