Generator tworzy frazy hasłowe z kilku niezależnie i równomiernie losowanych słów. O bezpieczeństwie frazy nie decyduje to, czy słowa są nietypowe, trudne albo pozornie przypadkowe. Decyduje liczba możliwych kombinacji oraz sposób ich losowania.
Przy słowniku zawierającym N wyrazów każde losowane słowo wnosi
log₂(N) bitów entropii. Dla k niezależnie losowanych słów:
H = k × log₂(N)
Dlatego kilka zwykłych polskich słów może utworzyć bardzo dużą przestrzeń możliwych fraz, pozostając jednocześnie łatwiejszymi do odczytania, przepisania lub podyktowania niż podobnie silny ciąg losowych znaków.
Generator korzysta wyłącznie z form, które poprawnie zapisuje się literami a-z,
takich jak domek, kotami czy piszemy. Polskie znaki
nie są usuwane z wyrazów. Formy wymagające znaków diakrytycznych po prostu nie trafiają
do słownika. Dzięki temu wygenerowana fraza nie zależy od obsługi Unicode ani od
konkretnego układu klawiatury.
Wyświetlana wartość opisuje entropię procesu generowania frazy, czyli niepewność napastnika co do wyniku losowania. Nie jest oceną tego, jak skomplikowanie wygląda gotowe hasło.
Przyjmujemy konserwatywnie, że napastnik zna cały sposób działania generatora, w tym:
Informacje te nie muszą być tajne. Bezpieczeństwo wynika z tego, że wynik każdego losowania pozostaje nieprzewidywalny.
Długość gotowej frazy w znakach nie jest podstawą obliczenia jej entropii. Jeżeli hasło
powstało przez losowanie słów z określonego słownika, liczbę możliwych wyników wyznacza
ten proces, a nie liczba znaków widocznych w gotowym haśle. Nie można więc przyjąć, że
fraza mająca 50 znaków posiada entropię równą
50 × log₂(liczby możliwych znaków).
Każda wyświetlana propozycja jest generowana niezależnie i podana wartość entropii dotyczy jednej frazy. Wygenerowanie kilku propozycji nie zwiększa ani nie zmniejsza siły poszczególnych fraz.
Najbezpieczniej wybrać jedną z wygenerowanych fraz bez kierowania się jej znaczeniem. Wybieranie hasła dlatego, że konkretne słowa są zabawne, znajome lub tworzą sensowne skojarzenie, zmienia sposób wyboru i może wprowadzić przewidywalność, której podana wartość entropii nie uwzględnia.
Indeksy słów wybiera random_int(0, N-1), która zgodnie z dokumentacją PHP
zwraca równomiernie rozłożone liczby z kryptograficznie bezpiecznego źródła systemowego
(getrandom(), /dev/urandom, Windows CNG), a przy braku
bezpiecznego źródła zgłasza wyjątek. Nie jest używany rand() ani
mt_rand(). Równomierne mapowanie na zakres eliminuje bias modulo na poziomie
interfejsu random_int(). Kolejne słowa wybierane są niezależnie; powtórzenia
są dozwolone i nie powodują ponownego losowania.
Cała lista jest przygotowywana przed losowaniem:
pl_PL.aff,a-z,nie-,
Każdy wyraz występuje na liście dokładnie raz, a losowanie jest jednostajne, więc
entropia jednego wyboru równa się min-entropii i wynosi log₂N.
Podstawą jest polski słownik Hunspell pl_PL razem z jego regułami odmiany.
Na listę trafiają zarówno formy hasłowe, jak i formy odmienione, pod warunkiem że
w poprawnej polszczyźnie zapisuje się je samymi literami a-z.
Słownik ortograficzny pokrywa całą polszczyznę, więc sam z siebie wnosi też wyrazy, których nikt nie widział. Dlatego o wejściu na listę decyduje nie poprawność formalna, lecz użycie: każda forma musi wystąpić w korpusie tekstów, i to co najmniej kilkanaście razy. Nie jest to klasyfikacja językoznawcza i nie gwarantuje usunięcia wszystkich nazw własnych ani zapożyczeń.
Digital Identity Guidelines: Authentication and Authenticator Management (2025) określa minimalną długość hasła:
NIST zaleca również:
NIST nie przypisuje określonej liczby bitów hasłu o danej długości. Entropia haseł wybieranych przez człowieka zależy od sposobu ich utworzenia i zazwyczaj jest znacznie niższa od matematycznego maksimum.
Technical Implementation Guidance on Cybersecurity Risk Management Measures, wersja 1.0 z czerwca 2025 r., wskazuje jako dobrą praktykę:
Jest to rekomendacja implementacyjna związana z rozporządzeniem wykonawczym Komisji (UE) 2024/2690, a nie uniwersalna miara entropii ani ogólny wymóg prawny dla każdego systemu. Rozporządzenie dotyczy określonych grup podmiotów, między innymi dostawców DNS, chmury, centrów danych, CDN, usług zarządzanych i bezpieczeństwa zarządzanego, platform społecznościowych, wyszukiwarek, marketplace'ów oraz usług zaufania.
| Długość | Maksymalna entropia |
|---|---|
| 8 znaków | 52,56 bita |
| 14 znaków | 91,98 bita |
| 15 znaków | 98,55 bita |
Hasła powstają na serwerze i nie są nigdzie zapisywane ani logowane.
Nie należy używać wygenerowanej frazy na urządzeniu, w przeglądarce ani w sieci, którym nie ufasz. Rozszerzenia przeglądarki, złośliwe oprogramowanie oraz zawartość schowka systemowego pozostają poza kontrolą generatora.
Ochrona przed nadużyciem wymaga 0,2 s przerwy między żądaniami. Ograniczenie tempa chroni dostępność usługi. Nie zwiększa entropii ani odporności wygenerowanej frazy.