Generator haseł frazowych · losowe słowa polskie

Generator haseł frazowych z polskich słów

Wygenerowane hasła
damska-wyrobimy-literki-golizny-szast-skoczy-zdradzi 52 zn.

Parametry generowania

Zmiana parametrów powoduje ponowne obliczenie przestrzeni możliwych wyników. Każda fraza jest generowana niezależnie.

7
312
Separator

Separator jest parametrem publicznym i nie zwiększa entropii. Żaden z nich nie występuje w słowach, więc granice słów pozostają jednoznaczne.

Zestaw słów

Rozszerzony zestaw to cały słownik: 75 241 wyrazów o długości 4–12 znaków. Zestaw krótkich słów to jego część, 40 163 wyrazy do 8 znaków, łatwiejszych do podyktowania, ale za cenę mniejszej entropii na słowo.

1
110
Dodatkowe przekształcenia

Samo zaznaczenie opcji nie jest tajemnicą i nie dodaje entropii. Dodają ją wyłącznie losowo wybrane wartości i ich losowe pozycje.

Ustaw maksymalną entropię

Ustawia najmocniejszy wariant: 12 wyrazów z rozszerzonego zestawu, plus losowa cyfra i losowy znak specjalny. Daje to 207,88 bita entropii na jedno hasło, czyli około 112 znaków do przepisania.

Entropia procesu generowania
107,06 bit
na jedną frazę hasłową
Silne
Wyrazów w zestawie N40 163
Entropia jednego wyboru log₂N15,2936 bit
7 niezależnych losowań107,0551 bit
Przestrzeń wyników C = 2H1,7 × 1032
Średni czas do trafienia27 bln lat
Pełne przeszukanie53 bln lat

Czasy zakładają atak offline: napastnik ma już wykradzioną bazę skrótów haseł i sprawdza 1011 kombinacji na sekundę. To wartość poglądowa, przyjęta dla szybkiej funkcji skrótu. Przy wolnych funkcjach haszujących (bcrypt, Argon2) oraz przy zwykłym logowaniu przez stronę atak trwa o rzędy wielkości dłużej.

Dla porównania
Ta fraza107,06 bit
NIST SP 800-63B-4 (2025) · wymóg minimalnej długości
hasło jako samodzielny czynnik min. 15 zn. 98,5 bit
hasło wyłącznie w ramach MFA min. 8 zn. 52,6 bit
ENISA (2025) · rekomendowana dobra praktyka
konto bez MFA min. 14 zn. 92,0 bit
konto z MFA min. 8 zn. 52,6 bit

Wartości odniesienia dotyczą wyłącznie ciągów, w których każdy znak jest niezależnie i równomiernie losowany z 95 drukowalnych znaków ASCII (6,57 bita na znak). Nie należy ich utożsamiać z entropią haseł wybieranych przez człowieka: piętnastoznakowe słowo, cytat, data lub przewidywalny schemat mają znacznie mniejszą odporność na zgadywanie. Normy określają długość, nie entropię.

Losowe słowa zamiast losowych znaków

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.

Co oznacza podana entropia

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:

  • używany słownik,
  • jego rozmiar i sposób utworzenia,
  • liczbę losowanych słów,
  • separator,
  • dostępne przekształcenia,
  • kod i algorytm generatora.

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.

Losowanie kryptograficzne

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.

Jak powstaje lista słów

Cała lista jest przygotowywana przed losowaniem:

  1. odczytanie haseł słownika Hunspell wraz z flagami odmiany,
  2. rozwinięcie pełnej odmiany regułami z pliku pl_PL.aff,
  3. odrzucenie każdej formy, która ma choć jeden znak spoza a-z,
  4. filtry długości oraz pominięcie form z przedrostkiem nie-,
  5. pominięcie haseł z listy wykluczeń wraz z całą ich odmianą,
  6. odrzucenie form niepoświadczonych w korpusie częstości,
  7. utworzenie indeksowanej listy.

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.

Pochodzenie słownika

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

NIST SP 800-63B-4

Digital Identity Guidelines: Authentication and Authenticator Management (2025) określa minimalną długość hasła:

  • 15 znaków, gdy hasło jest samodzielnym czynnikiem uwierzytelniającym,
  • 8 znaków, gdy hasło jest używane wyłącznie jako część uwierzytelniania wieloskładnikowego.

NIST zaleca również:

  • możliwość używania haseł o długości co najmniej 64 znaków,
  • akceptowanie spacji i drukowalnych znaków ASCII,
  • niewymuszanie schematów typu wielka litera + cyfra + znak specjalny,
  • niewymuszanie okresowej zmiany bez dowodu kompromitacji,
  • blokowanie powszechnych i skompromitowanych haseł,
  • umożliwienie używania menedżerów haseł i funkcji wklejania.

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.

ENISA

Technical Implementation Guidance on Cybersecurity Risk Management Measures, wersja 1.0 z czerwca 2025 r., wskazuje jako dobrą praktykę:

  • co najmniej 8 znaków dla kont korzystających z MFA,
  • co najmniej 14 znaków dla kont bez MFA.

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.

Porównanie z losowymi znakami ASCII

DługośćMaksymalna entropia
8 znaków52,56 bita
14 znaków91,98 bita
15 znaków98,55 bita

Prywatność

Hasła powstają na serwerze i nie są nigdzie zapisywane ani logowane.

  • Wygenerowane frazy nie są zapisywane w bazie danych ani w sesji użytkownika.
  • Treść frazy nie trafia do adresu URL, parametrów zapytania ani logów aplikacyjnych.
  • Fraza istnieje tymczasowo w pamięci procesu na czas wygenerowania odpowiedzi i jest przesyłana do przeglądarki przez HTTPS.

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.

Zasady bezpiecznego użycia

  • Używaj innej frazy dla każdego konta.
  • Nie skracaj wygenerowanej frazy.
  • Nie zastępuj słów własnymi skojarzeniami.
  • Nie publikuj jej ani nie wysyłaj niechronionym kanałem.
  • Przechowuj ją w zaufanym menedżerze haseł.
  • Włącz MFA, najlepiej odporne na phishing, na przykład FIDO2/WebAuthn.
  • Zmień frazę, jeżeli mogła zostać ujawniona.
4crypto.eu
Bezpłatna konsultacja