Generator haseł
Generuj silne losowe hasła z wybranych zestawów znaków. Generator haseł pokazuje entropię w bitach i działa w całości w przeglądarce.
Wszystkie obliczenia są wykonywane w przeglądarce. Nic z tego, co wprowadzisz, nie jest wysyłane na serwer.
Wynik
—
—
Kopiuj
Hasła zbiorcze
Generator haseł tworzy losowe hasła z wybranych zestawów znaków i raportuje siłę w bitach entropii, a nie jako niejasną etykietę. Długość od 4 do 128 znaków, opcjonalne wykluczenie znaków mylących i nawiasów oraz tryb hasła frazowego budujący zapamiętywalne wielowyrazowe hasła.
Każde hasło powstaje w przeglądarce przy użyciu kryptograficznego generatora liczb losowych systemu operacyjnego. Nic nie jest przesyłane, logowane ani zapisywane.
Generuj losowe hasło
Ustaw długość, wybierz zestawy znaków, a generator od razu zwróci hasło. Możesz generować ponownie tyle razy, ile chcesz; każde naciśnięcie to nowe losowanie z tej samej puli i nic nie jest nigdzie rejestrowane.
Szesnaście znaków ze wszystkich czterech zestawów to rozsądna wartość domyślna dla ochrony pieniędzy lub tożsamości. Dwanaście wystarcza, gdy usługa ogranicza próby logowania. Poniżej dwunastu bezpieczeństwo zależy od zabezpieczeń witryny, których nie da się zweryfikować.
Długość ma większe znaczenie niż złożoność. Dodanie jednego znaku w puli 94 znaków mnoży przestrzeń przeszukiwania przez 94. Zamiana małej litery na symbol przy stałej długości robi znacznie mniej. Gdy witryna ogranicza hasło do 16 znaków, użyj wszystkich 16.
Wybierz zestawy znaków do uwzględnienia
Dostępne są cztery zestawy; każdy włączony poszerza pulę, z której losowany jest każdy znak.
| Zestaw | Znaki | Liczba | |
|---|---|---|---|
| Małe litery | a-z | 26 | |
| Wielkie litery | A-Z | 26 | |
| Cyfry | 0-9 | 10 | |
| Symbole | `!"#$%&'()*+,-./:;<=>?@[\]^_{\ | }~`` | 32 |
Wszystkie cztery dają pulę 94 znaków. Trzy modyfikatory ją zawężają:
Wyklucz znaki mylące usuwa i I l 1 L |, o O 0 oraz cudzysłowy i znaki interpunkcyjne łatwe do pomylenia. Warto przy haśle odczytywanym z ekranu i wpisywanym na innym urządzeniu lub dyktowanym przez telefon. Kosztuje niewielką entropię, ale oszczędza realną frustrację.
Wyklucz nawiasy usuwa < > ( ) [ ] { }. Niektóre starsze systemy źle obsługują je w formularzach logowania, a niektóre powłoki traktują je specjalnie, gdy hasło trafia do skryptu.
Bez powtórzonych znaków gwarantuje, że każdy znak występuje raz. Brzmi mocniej, a jest nieco słabsze: pula kurczy się z każdym umieszczonym znakiem, a długość ma górny limit równy rozmiarowi puli. Używaj tylko, gdy wymaga tego polityka.
Można też losować każdy znak z połączonej puli albo gwarantować co najmniej jeden znak z każdego wybranego zestawu. Druga opcja istnieje, bo wiele firmowych polityk tego wymaga. Wymuszenie po jednym z każdego zestawu nieznacznie obniża entropię, bo usuwa część poprawnych kombinacji.
Mierz siłę hasła w bitach entropii
Entropia mierzy, ile prób potrzebuje atakujący, wyrażając to jako potęgę dwójki. To jedyny sensowny sposób porównywania haseł, bo wskaźnik „silne” nie mówi, przed czym hasło jest silne.
Entropy (bits) = length × log₂(pool size)
Combinations = pool size ^ length
Bity sumują się addytywnie; każdy podwaja pracę. Hasło 60-bitowe łamie się dwa razy dłużej niż 59-bitowe i 1024 razy dłużej niż 50-bitowe. Dlatego niewielkie wydłużenie daje duży wzrost bezpieczeństwa.
Przybliżone progi i powód każdego:
- Poniżej 40 bitów: łamywalne w minuty przez kogoś z konsumenckim GPU. Nie nadaje się do niczego ważnego.
- 50 do 60 bitów: opiera się przypadkowemu atakowi, pada przy determinowanym ataku offline. W porządku do logowania na forum.
- 70 do 80 bitów: bezpieczne wobec realistycznych ataków offline dziś. Sensowny cel dla większości kont.
- Powyżej 100 bitów: poza tym, co przewidywalny sprzęt złamie brute force. Odpowiednie dla haseł głównych menedżera haseł i kluczy szyfrowania.
Oblicz entropię 16-znakowego hasła
Hasło 16-znakowe ze wszystkich czterech zestawów ma około 105 bitów entropii. Oto arytmetyka. 1. Zsumuj pulę. 26 małych + 26 wielkich + 10 cyfr + 32 symbole = 94 znaki 2. Znajdź bity na znak. log₂(94) = 6,55 bitu
3. Pomnóż przez długość. 16 × 6,55 = 104,9 bitu
4. Wyraź jako liczbę kombinacji. 94¹⁶ ≈ 3,7 × 10³¹ możliwych haseł
Skrócenie do 12 znaków obniża entropię do 78,6 bitu, z 4,7 × 10²³ kombinacjami. Nadal silne, ale około 68 miliardów razy łatwiejsze do ataku niż wersja 16-znakowa. Usunięcie zestawu symboli z hasła 16-znakowego zmniejsza pulę do 62, dając 95,3 bitu, mniejszą stratę niż skrócenie o cztery znaki.
Ta porównawcza obserwacja ma znaczenie. Usunięcie czterech znaków kosztuje więcej niż usunięcie całego zestawu symboli. Długość to dźwignia.
Zrozum, ile trwa łamanie hasła
Pojedyncza liczba „czasu łamania” jest bezsensowna bez opisu ataku. To samo hasło pada w sekundy albo przetrwa Słońce w zależności od sposobu zgadywania, więc generator raportuje dwa scenariusze i nazywa oba.
Expected guesses = 2^(entropy − 1)
Time = expected guesses / guesses per second
Atak online, około 10³ prób na sekundę. Atakujący wysyła zgadywane hasła do działającego formularza logowania. Ograniczenia szybkości, blokady i opóźnienia sieci hamują tempo. Większość realnych ataków na jedno konto wygląda tak, a prawie każde wygenerowane hasło wytrzymuje to w nieskończoność.
Atak offline, około 10¹² prób na sekundę. Usługa została naruszona i atakujący ma hashe haseł. Przy klastrze GPU i szybkim hashu jak niesolony MD5 lub SHA-1 zgadywanie idzie w biliony na sekundę lub więcej. To scenariusz, który ma znaczenie, bo na niego nie masz wpływu.
Przy 10¹² prób na sekundę hasło 78-bitowe zajmuje około 4800 lat, a 105-bitowe dłużej niż wiek Wszechświata o wiele rzędów wielkości. Hasło 40-bitowe pada w mniej niż sekundę.
Jedna uwaga ukryta w liczbach: zakładają ślepe zgadywanie. Hasło złożone ze słów, dat lub wzorców klawiatury pada znacznie szybciej niż sugeruje liczba znaków, bo atakujący zaczynają od prawdopodobnych kandydatów. Dlatego hasła tutaj są losowane, a nie składane z czegoś zapamiętywalnego.
Użyj hasła frazowego zamiast losowego ciągu
Hasło frazowe to kilka losowych słów połączonych razem. Osiąga podobną entropię jak losowy ciąg, a pozostaje możliwe do zapamiętania i wpisania, dlatego pasuje do garstki haseł, których nie da się trzymać w menedżerze.
Entropy = number of words × log₂(word list size)
Przy liście 7776 słów każde słowo daje log₂(7776) = 12,9 bitu.
| Słowa | Entropia | Porównanie |
|---|---|---|
| 4 | 51,7 bitu | 8-znakowe losowe hasło |
| 5 | 64,6 bitu | 10-znakowe losowe hasło |
| 6 | 77,5 bitu | 12-znakowe losowe hasło |
| 7 | 90,4 bitu | 14-znakowe losowe hasło |
Sześć słów daje 77,5 bitu, solidnie wobec ataku offline, i większość ludzi zapamiętuje to po kilku powtórzeniach. Porównaj wpisywanie correct-horse-battery-staple-mountain-glass z K7#mQ2vX@pL9. Oba są silne; tylko jedno da się przypomnieć i wpisać na pilocie telewizora.
Dwa warunki bezpiecznego hasła frazowego. Słowa musi wybrać losowo maszyna, nie ty; ludzki wybór słów skupia się wokół popularnego słownictwa i skojarzeń tematycznych. Nie mogą tworzyć frazy istniejącej gdziekolwiek, bo cytowana linia piosenki ma prawie zerową entropię bez względu na liczbę słów.
Używaj hasła frazowego do hasła głównego menedżera, logowania do urządzenia i konta e-mail. Do reszty używaj losowych ciągów przechowywanych w menedżerze.
Dlaczego ten generator używa crypto.getRandomValues
Generator haseł losuje każdy znak z crypto.getRandomValues(), kryptograficznego generatora liczb losowych przeglądarki, zasilanego pulą entropii systemu operacyjnego. Nie używa Math.random(), a ta różnica to różnica między hasłem a pozorem hasła.
Math.random() to szybki generator pseudolosowy do symulacji i gier. Ma mały stan wewnętrzny, przeglądarki dokumentują go jako nieodpowiedni do bezpieczeństwa, a jego wynik jest przewidywalny dla kogoś, kto obserwuje go wystarczająco długo albo zna implementację i mniej więcej moment generowania. Generator haseł oparty na Math.random() tworzy hasła do odtworzenia, a nie do zgadywania, i liczba znaków w ogóle nie chroni przed tym.
Jest drugi, subtelniejszy wymóg. Mapowanie losowych bajtów na zestaw znaków zwykłą operacją modulo wprowadza bias: 2³² nie dzieli się równo przez 94, więc najwcześniejsze znaki w zestawie pojawiają się nieco częściej. Skośność jest niewidoczna w pojedynczym haśle i mierzalna przy wystarczającej liczbie, obniżając realną entropię poniżej obliczonej. Ten generator używa próbkowania z odrzuceniem: wartość z nierównomiernego ogona jest odrzucana i losowana ponownie, więc rozkład jest naprawdę jednostajny.
Dla haseł nie pokazuje się ziarna i to jest zamierzone. Inne losowniki na tej witrynie pokazują ziarno, by wynik dało się odtworzyć i zweryfikować. Hasło, które da się odtworzyć, jest skompromitowane, więc tutaj ziarno nie jest przechowywane, wyświetlane ani możliwe do wyprowadzenia.
Wszystko dzieje się w przeglądarce. Żadne hasło nie trafia na serwer, do pamięci ani do zdarzeń analitycznych.
Przechowuj hasła bezpiecznie
Wygenerowane hasło pomaga tylko wtedy, gdy użyjesz go raz i przechowasz tam, skąd je odzyskasz. Ponowne użycie psuje wszystko inne: gdy jedna usługa zostanie naruszona, atakujący próbują odzyskanych danych logowania wszędzie, a 105-bitowe hasło użyte w dziesięciu witrynach nie chroni żadnej po upadku najsłabszej.
Cztery praktyki, od najważniejszej:
Używaj menedżera haseł. Usuwa potrzebę pamiętania i przepisywania, więc znika motywacja do ponownego użycia lub upraszczania. Chroń go długim hasłem frazowym i trzymaj offline zapis tego hasła oraz klucza odzyskiwania w fizycznie bezpiecznym miejscu.
Włącz uwierzytelnianie dwuskładnikowe wszędzie, gdzie jest oferowane, i preferuj aplikację uwierzytelniającą lub klucz sprzętowy zamiast SMS. Kody SMS można przechwycić przez zamianę karty SIM. Drugi składnik chroni konto nawet, gdy hasło jest znane.
Zmieniaj hasło, gdy jest powód. Zaplanowana rotacja co dziewięćdziesiąt dni nie jest już zalecana przez NIST, bo pcha ludzi w przewidywalne warianty. Zmieniaj natychmiast przy oznakach naruszenia, przy podejrzeniu i przy haśle, o którym wiesz, że było użyte ponownie.
Sprawdzaj adresy w znanych naruszeniach. Usługi pozwalające przeszukać e-mail w publicznych danych naruszeń powiedzą, które konta wymagają uwagi teraz, co jest użyteczniejsze niż zmiana wszystkiego według harmonogramu.
Często zadawane pytania
Jak długie powinno być hasło?
Szesnaście znaków to dobry domyślny wybór dla kont chroniących pieniądze, tożsamość lub komunikację, dając około 105 bitów entropii z pełnego zestawu znaków. Dwanaście znaków, około 79 bitów, wystarczy dla kont o mniejszej wartości. Gdy witryna pozwala więcej, używaj więcej; każdy dodatkowy znak mnoży przestrzeń przeszukiwania przez rozmiar puli.
Co czyni hasło silnym?
Losowość i długość, w tej kolejności. Silne hasło jest losowane nieprzewidywalnie z dużej puli znaków i na tyle długie, że łączna liczba możliwości jest niepraktyczna do przeszukania. Podstawienia jak p@ssw0rd prawie nic nie dodają, bo atakujący zgadują te wzorce pierwsze. Entropia w bitach mierzy rzeczywistą siłę; etykieta „silne” nie.
Czy hasła generowane tutaj są bezpieczne w użyciu?
Tak. Każde hasło powstaje w przeglądarce przez crypto.getRandomValues(), kryptograficzny generator systemu operacyjnego, z próbkowaniem z odrzuceniem, by rozkład znaków był jednostajny. Żadne hasło nie jest przesyłane, logowane ani zapisywane, i żaden skrypt strony trzeciej z dostępem do DOM tu nie działa.
Czy moje hasło jest gdzieś wysyłane?
Nie. Generowanie odbywa się w całości w przeglądarce i żadna wygenerowana wartość jej nie opuszcza. Nic nie trafia do pamięci przeglądarki, linku udostępniania ani zdarzeń analitycznych. Zamknięcie karty trwale usuwa hasło, więc skopiuj je do menedżera haseł przed wyjściem.
Co oznacza entropia w bitach?
Entropia w bitach wyraża, ile prób potrzebuje atakujący, jako potęgę dwójki. Hasło 60-bitowe wymaga około 2⁵⁹ oczekiwanych prób. Każdy dodatkowy bit podwaja trudność, dlatego wartość szybko rośnie z długością: 16 znaków z puli 94 znaków daje 104,9 bitu, czyli około 3,7 × 10³¹ możliwości.
Czy powinienem uwzględniać symbole w haśle?
Uwzględniaj je, gdy witryna je akceptuje, ale nie wybieraj symboli zamiast długości. Dodanie 32-znakowego zestawu symboli do hasła 16-znakowego podnosi entropię z 95,3 do 104,9 bitu. Dodanie czterech znaków do hasła bez symboli podnosi ją z 95,3 do 119,1. Długość to silniejsza dźwignia.
Czym jest hasło frazowe i czy jest tak silne jak losowe hasło?
Hasło frazowe to kilka losowo wybranych słów połączonych razem. Sześć słów z listy 7776 słów daje 77,5 bitu, porównywalnie z 12-znakowym losowym hasłem, i jest znacznie łatwiejsze do zapamiętania i wpisania. Musi być wybrane maszynowo i nie może tworzyć istniejącej frazy, bo rozpoznawalny cytat ma prawie zerową entropię.
Czy mogę używać silnego hasła na wielu kontach?
Nie. Ponowne użycie to najbardziej szkodliwy nawyk, a siła hasła go nie chroni. Gdy jakakolwiek usługa zostanie naruszona, atakujący próbują odzyskanych danych logowania na każdej głównej witrynie. Każde konto potrzebuje własnego unikalnego hasła, a to problem, który menedżer haseł ma rozwiązać.
Jak często powinienem zmieniać hasło?
Zmieniaj, gdy jest powód: znane lub podejrzane naruszenie, współdzielone lub ponownie użyte hasło albo urządzenie, którego już nie kontrolujesz. NIST wycofało zalecenie rotacji według harmonogramu, bo wymuszone regularne zmiany popychają ludzi w przewidywalne warianty jak dopisanie cyfry, co osłabia bezpieczeństwo zamiast je poprawiać.
Czym jest bias modulo i dlaczego ma znaczenie?
Bias modulo to skośność wprowadzana, gdy losowe bajty mapuje się na zestaw znaków zwykłym resztą, bo zakres bajtów rzadko dzieli się równo przez rozmiar zestawu. Niektóre znaki pojawiają się wtedy nieco częściej, obniżając realną entropię poniżej obliczonej. Ten generator odrzuca i ponownie losuje wartości z nierównomiernego ogona, więc rozkład jest naprawdę jednostajny.
Podsumowanie
Generator haseł losuje hasła z puli do 94 znaków przy użyciu kryptograficznego generatora liczb losowych przeglądarki, z próbkowaniem z odrzuceniem dla jednostajnego rozkładu znaków, i raportuje siłę jako entropię w bitach, a nie jako etykietę.
Długość to najsilniejszy czynnik: hasło 16-znakowe z pełnego zestawu ma około 105 bitów, a skrócenie o cztery znaki kosztuje więcej entropii niż usunięcie całego zestawu symboli. Czasy łamania podano dla ataku online przy 10³ próbach na sekundę i offline przy 10¹², bo pojedyncza liczba bez kontekstu nic nie znaczy. Tryb hasła frazowego osiąga porównywalną siłę przy zapamiętywalności, co pasuje do niewielu haseł poza menedżerem. Każde hasło powstaje lokalnie i żadne nie jest przesyłane, logowane ani zapisywane.
Notatki implementacyjne
- Tylko
crypto.getRandomValues().Math.random()w tym pliku to wysłana luka. Wymagane próbkowanie z odrzuceniem; testuj jednostajność dopasowaniem chi-kwadrat na 10 mln losowań dla zestawu 94 elementów. - Wartości entropii to fixture testowe: 16 znaków / pula 94 = 104,9 bitu; 12 / 94 = 78,6; 16 / 62 = 95,3; 20 / 62 = 119,1; 6 słów / 7776 = 77,5.
- Brak wyświetlania, przechowywania i możliwości wyprowadzenia ziarna na tej stronie. Panel potwierdzenia podaje tylko CSPRNG i gwarancję braku transmisji.
- Linia o braku transmisji w leadzie to obietnica. Żadne zdarzenie analityczne nie może nieść wygenerowanej wartości; żaden skrypt strony trzeciej z dostępem do DOM nie może się tu ładować.
- Brak historii haseł, trwałości i localStorage.
- Odniesienie do rotacji NIST to SP 800-63B. Cytuj, gdy dodasz cytowanie; nie wymyślaj numeru wersji.
- Word count 2,090.