Generator skrótów bcrypt dla haseł
Bcrypt jest zaprojektowany do przechowywania haseł: celowo wolny i automatycznie solony, dzięki czemu dwa identyczne hasła nigdy nie dają tego samego skrótu.
Jak czytać ten dziwny ciąg znaków, który dostajesz
Skrót bcrypt wygląda jak szum liniowy, ale ma stałą anatomię, którą warto znać. Zaczyna się od znacznika wersji, takiego jak $2a$ albo $2b$, po którym następuje wybrany przez Ciebie współczynnik kosztu, potem dwadzieścia dwa znaki losowej soli, a na końcu trzydzieści jeden znaków właściwego skrótu. Wszystko, czego potrzebuje weryfikator, podróżuje wewnątrz tego jednego ciągu — dlatego cała rzecz mieści się w jednej kolumnie bazy danych i dlatego wygenerowanie skrótu dla tego samego hasła dwa razy daje dwa różne ciągi, które mimo to są oba ważne. Sól różni się za każdym razem, więc wynik różni się za każdym razem; gdy Twój backend później sprawdza logowanie, odczytuje sól z powrotem z zapisanego ciągu, haszuje nią próbę logowania i porównuje wynik.
Gdzie faktycznie przydałaby Ci się ta strona
Przez większość czasu haszowanie bcrypt odbywa się wewnątrz Twojej aplikacji, a nie w przeglądarce — ale są chwile, gdy ręcznie zrobiony skrót jest dokładnie tym, czego potrzebujesz. Zasilanie testowej bazy danych kontami, których hasła znasz. Ratowanie zablokowanego konta administratora przez wpisanie świeżego skrótu prosto do tabeli użytkowników. Sprawdzenie, jaki kształt ciągu znaków wyprodukuje biblioteka, zanim zaprojektujesz pod niego kolumnę. We wszystkich tych przypadkach wklejasz hasło, kopiujesz skrót i umieszczasz go tam, gdzie Twój kod logowania go oczekuje. Jednej rzeczy nigdy nie rób: nie porównuj skrótów jako ciągów tekstowych we własnym kodzie. Z powodu soli to samo hasło daje różne skróty — weryfikacja musi przechodzić przez funkcję porównującą Twojej biblioteki, która wie, jak odczytać sól z powrotem.
Wybór kosztu, z którym potrafisz żyć
Każdy stopień współczynnika kosztu podwaja pracę, zarówno dla Ciebie, jak i dla atakującego. Osiem jest szybkie i najlepiej zostawić je kompatybilności wstecznej; dziesięć, tutejsza wartość domyślna, to typowy wybór produkcyjny; dwanaście daje komfort, jeśli logowania są rzadkie; czternaście zajmuje sekundy nawet samo wygenerowanie. Uczciwe ostrzeżenie co do czasu: ta strona uruchamia czystą implementację w JavaScripcie, która jest wolniejsza niż natywny kod na Twoim serwerze, więc traktuj odczuwane tu opóźnienie jako górną granicę, a nie benchmark — mierz na maszynie, która faktycznie będzie obsługiwać logowania. A ponieważ skrót jest tak dobry, jak to, co do niego wejdzie, generator haseł tworzy silne dane wejściowe, podczas gdy wszystko, co nie jest hasłem — pliki, dokumenty, zwykły tekst — należy zamiast tego do generatora skrótów SHA.
Dlaczego bcrypt zamiast zwykłego skrótu
Zwykły skrót SHA hasła można szybko złamać metodą brute-force na współczesnym sprzęcie. Bcrypt jest celowo wolny — współczynnik kosztu kontroluje dokładnie, jak bardzo — i automatycznie soli dane, dzięki czemu to samo hasło nigdy nie da dwa razy tego samego zapisanego skrótu. Dlatego wciąż jest standardowym wyborem do przechowywania haseł po stronie serwera.
Jaki współczynnik kosztu wybrać?
10–12 to typowa wartość domyślna w 2026 roku — wystarczająco wysoka, by opierać się atakom brute-force, wystarczająco niska, by nie spowalniać zauważalnie prawdziwych logowań. Wyższe wartości są bezpieczniejsze, ale wolniejsze do obliczenia przy każdym logowaniu.
Czy mogę tego użyć do zahaszowania dokumentu lub długiego tekstu?
Nie — bcrypt obcina dane wejściowe powyżej około 72 bajtów i jest przeznaczony wyłącznie do haseł. Do ogólnego haszowania tekstu lub plików użyj zamiast tego generatora skrótów SHA.
Czy moje hasło jest gdzieś wysyłane?
Nie — haszowanie odbywa się w całości w Twojej przeglądarce, w JavaScripcie. Nic nie jest przesyłane.
