Skip to content

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.

Bez śledzenia Działa w przeglądarce Bezpłatne
W 100% w Twojej przeglądarce — Twoje hasło nigdy nie opuszcza Twojego urządzenia.
Skrót bcrypt
Anatomia skrótu
Wersja
Koszt
Sól
Cyfrowy odcisk

Zgodne z referencyjnym zachowaniem bcrypt, z wynikiem porównanym z Node bcrypt, Python bcrypt i Apache htpasswd — Zespół ds. Bezpieczeństwa Go Tools · Jun 12, 2026

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. 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. 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. 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.

✗ Niepoprawne
bcrypt.decrypt(hash)  // no such operation
✓ Poprawne
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.

✗ Niepoprawne
cost: 4  // far too fast, weak against brute force
✓ Poprawne
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.

✗ Niepoprawne
hash(pw) === storedHash  // fails — different salts
✓ Poprawne
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?
Z tym — tak, ponieważ nic, co wpiszesz, nigdy nie opuszcza Twojej przeglądarki. Hasło, wygenerowany skrót i cała weryfikacja działają lokalnie w JavaScript na Twoim własnym urządzeniu. Nie ma żadnych żądań sieciowych, logowania ani przechowywania danych: możesz to potwierdzić, otwierając narzędzia deweloperskie przeglądarki (F12 → karta Sieć) podczas generowania skrótu i obserwując zero wychodzących żądań, albo odłączając się od internetu i sprawdzając, że narzędzie nadal działa. To przeciwieństwo podejrzanego generatora, który wysyła Twoje hasło na serwer metodą POST. Mimo to z nawyku, gdy tylko eksperymentujesz, lepiej używaj jednorazowego hasła testowego niż prawdziwego, produkcyjnego.
Jak wygenerować skrót bcrypt online?
Otwórz kartę Generuj, wpisz hasło (lub kliknij Losowe hasło, aby wybić silne) i wybierz współczynnik kosztu — 12 to nowoczesny domyślny wybór — oraz prefiks wersji: $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ć?
Nie. Bcrypt to jednokierunkowa funkcja haszująca hasła, a nie szyfrowanie, więc nie ma klucza ani operacji odszyfrowania, która zamieniłaby skrót z powrotem w oryginalne hasło. Jedynym sposobem na poznanie hasła ze skrótu jest zgadywanie kandydatów i haszowanie każdego z nich aż do uzyskania zgodności — a właśnie to regulowany współczynnik kosztu bcrypt ma uczynić wolnym i kosztownym. Dlatego weryfikujesz hasło względem skrótu, zamiast go odszyfrowywać: narzędzie ponownie haszuje Twojego kandydata, używając soli i kosztu przechowywanych w skrócie, i sprawdza, czy wynik jest identyczny.
Jakiego współczynnika kosztu (work factor) powinienem użyć?
Koszt 12 to nowoczesny domyślny wybór i rozsądny kompromis między bezpieczeństwem a szybkością. Koszt jest logarytmicznym współczynnikiem nakładu pracy: każdy przyrost podwaja liczbę wewnętrznych rund, więc koszt 13 zajmuje mniej więcej dwa razy więcej czasu na obliczenie i weryfikację niż koszt 12, a koszt 11 — o połowę mniej. Wyższe koszty spowalniają atakujących łamiących wykradzione skróty siłą, ale dodają też opóźnienie do każdego legalnego logowania, więc nie podnoś go ponad punkt, w którym uwierzytelnianie zaczyna być ślamazarne na Twoim rzeczywistym sprzęcie. Koszt 10 jest akceptowalny dla niskoryzykownych punktów końcowych; 12–14 nadaje się do wszystkiego wrażliwego. Prawidłowy zakres to od 4 do 31, a to narzędzie pozwala wybrać od 4 do 15.
Jaka jest różnica między $2a$, $2b$ i $2y$?
To prefiksy wersji tego samego algorytmu bcrypt, a różnice sięgają historycznych poprawek błędów w sposobie, w jaki niektóre implementacje obsługiwały długość ciągu i znaki z ustawionym najwyższym bitem. $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?
Przełącz się na kartę Weryfikuj, wklej przechowywany skrót bcrypt (pełny ciąg $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ć?
Wszystkie trzy to celowo wolne, solone funkcje haszujące hasła i wszystkie są znacznie lepsze od gołego SHA-256 do przechowywania haseł. bcrypt jest najszerzej wspierany i sprawdzony w boju, z prostym, regulowanym kosztem; jego główne ograniczenia to limit 72 bajtów hasła oraz to, że obciąża jedynie procesor. scrypt dodaje twardość pamięciową, czyniąc masowe ataki GPU/ASIC kosztowniejszymi. Argon2 (a konkretnie Argon2id) to obecna rekomendacja konkursu Password Hashing Competition oraz OWASP, strojąca niezależnie czas, pamięć i równoległość. Jeśli wybierasz na nowo dzisiaj, Argon2id jest najmocniejszym domyślnym wyborem; bcrypt pozostaje doskonałym, bezpiecznym wyborem — zwłaszcza tam, gdzie liczy się wsparcie bibliotek lub interoperacyjność. Kompromisy omawiamy szczegółowo w artykule bcrypt kontra Argon2 kontra scrypt.
Dlaczego skrót bcrypt jest za każdym razem inny?
Ponieważ bcrypt generuje świeżą, losową sól dla każdego skrótu, a sól jest domieszywana przed haszowaniem. To samo hasło daje więc zupełnie inny 60-znakowy ciąg za każdym razem, gdy klikniesz Generuj — i o to właśnie chodzi: powstrzymuje to atakujących przed wstępnym obliczaniem tęczowych tablic lub zauważeniem, że dwóch użytkowników ma wspólne hasło. Sól nie jest tajna; jest przechowywana wprost wewnątrz skrótu (22 znaki po koszcie), więc weryfikacja może ją z powrotem odczytać. Jeśli wylosujesz skrót ponownie, po prostu otrzymasz kolejny prawidłowy skrót dla tego samego hasła, a każdy z nich zweryfikuje się pomyślnie.

Powiązane narzędzia

Zobacz wszystkie narzędzia →