Generator haseł tworzy losowe hasła, które znacznie trudniej zgadnąć niż te wymyślone przez ludzi. Programiści i uczący się programowania używają go do kont testowych, paneli administracyjnych, danych logowania do baz danych, rejestracji w dashboardach, sekretów CI i ćwiczenia własnego bezpieczeństwa.
Kluczowe pojęcie to *entropia*, czyli to, jak nieprzewidywalne jest hasło. Dłuższe i mniej przewidywalne hasła są dramatycznie silniejsze, nawet jeśli dla człowieka oba wyglądają losowo. Unikalne hasło do każdego konta, przechowywane w zaufanym menedżerze haseł, usuwa większość ryzyka związanego z powtarzaniem haseł.
Prawdziwy generator haseł powinien pobierać losowość z bezpiecznego źródła: window.crypto.getRandomValues w przeglądarce, secrets w Pythonie, crypto.randomBytes w Node.js. Wszystko, co opiera się na Math.random() albo prostym generatorze inicjowanym czasem, jest na tyle przewidywalne, że da się to zaatakować.
Czego nauczysz się, generując hasła
Długość zwykle znaczy więcej niż sprytne zamiany, takie jak @ zamiast a: 20-znakowe hasło z samych małych liter wygrywa z 10-znakowym z symbolami.
Losowość musi pochodzić z kryptograficznie bezpiecznego źródła, takiego jak window.crypto, a nie z Math.random().
Unikalne hasło do każdego konta ogranicza szkody, gdy jedna strona lub baza danych zostanie przejęta.
Długa losowa *fraza hasłowa* (cztery do sześciu niepowiązanych słów) może być tak silna jak 20-znakowy losowy ciąg, a łatwiej ją wpisać lub podyktować.
Jak wygenerować silne hasło krok po kroku
1
Wybierz długość
Do ważnych kont celuj w co najmniej 16 znaków, a do kont administratora lub root w 20 i więcej. Długość wygrywa z każdą inną zmianą.
2
Wybierz rodzaje znaków
Włącz małe litery, wielkie litery, cyfry i symbole, żeby uzyskać najsilniejszy wynik. Jeśli hasło będzie dyktowane głosem albo kopiowane między systemami, możesz wyłączyć symbole.
3
Wyklucz niejednoznaczne znaki (opcjonalnie)
Włącz opcję pomijania O / 0 i l / 1 / I, jeśli hasło może być czytane na głos albo wpisywane ręcznie.
4
Wygeneruj hasło i sprawdź wskaźnik siły
Wskaźnik szacuje, ile czasu zajęłoby złamanie hasła metodą siłową. Wszystko w najsilniejszym przedziale wystarczy do kont prywatnych.
5
Zapisz je w menedżerze haseł
Skopiuj hasło do zaufanego menedżera haseł i nigdy nie wklejaj go na czacie, w e-mailu ani na karteczce. Nie używaj go ponownie do innego konta.
Ściąga: siła hasła
Przybliżony czas łamania metodą siłową przy 10 miliardach prób na sekundę, czyli przy nowoczesnym łamaniu offline. Traktuj to jako orientacyjną wskazówkę przy wyborze długości. Oficjalne zalecenia: NIST SP 800-63B i OWASP Authentication Cheat Sheet.
Długość
Zestaw znaków
Przybliżona siła
8
małe litery + cyfry (36 znaków)
Złamane w kilka sekund
10
małe + wielkie litery + cyfry (62)
Złamane w kilka godzin
12
małe + wielkie litery + cyfry + symbole (94)
Od dni do tygodni
16
małe + wielkie litery + cyfry + symbole
Stulecia
20
małe + wielkie litery + cyfry + symbole
Dziś praktycznie nie do złamania
4 słowa
Fraza z losowych słów (correct horse battery staple)
Stulecia, a łatwiej zapamiętać
Przykłady haseł do wypróbowania
Silne ustawienie domyślne dla zwykłego konta
Ustawienia
Długość: 20 · Małe litery: wł. · Wielkie litery: wł. · Cyfry: wł. · Symbole: wł.
Przykładowy wynik
B7$kP2wM!hG9eV4rT&xQ
Praktyczne ustawienie domyślne dla dashboardów, aplikacji internetowych i większości kont prywatnych. 20 znaków ze wszystkich czterech rodzajów uważa się dziś za praktycznie nie do złamania.
Porównanie samej długości
8 znaków (słabe)
f7Bk2pQz
24 znaki (silne)
f7Bk2pQzM!eV9rT&hG3wXn$L
Krótsze hasło używa tych samych rodzajów znaków, ale jest o wiele rzędów wielkości słabsze. Długość prawie zawsze wygrywa.
Czytelna fraza hasłowa
Fraza hasłowa
lantern-vivid-comet-nimbus-quartz
Pięć losowych, niepowiązanych słów jest mniej więcej tak silne jak 16-znakowe losowe hasło, a znacznie łatwiej je wpisać, wypowiedzieć i zapamiętać.
Częste błędy z hasłami
Używanie tego samego wygenerowanego hasła do wielu kont: wyciek z jednej strony przenosi się na wszystkie.
Wybór krótkiego hasła, bo ma symbole, i zakładanie, że same symbole czynią je silnym. Długość to ważniejsza dźwignia.
Zapisywanie produkcyjnych danych logowania w kodzie źródłowym, na zrzutach ekranu, w wiadomościach na czacie czy w notatkach z lekcji. Używaj zmiennych środowiskowych i menedżera sekretów.
Generowanie haseł we własnym kodzie za pomocą Math.random() albo prostych generatorów inicjowanych czasem. Zawsze sięgaj po kryptograficzne API platformy.
Zapisywanie hasła na karteczce zamiast w menedżerze haseł. Karteczka to najsłabsze ogniwo.
Generator haseł: FAQ
Jak wygenerować silne hasło?
Użyj generatora haseł i wybierz długość co najmniej 16 znaków ze wszystkimi czterema rodzajami znaków (małe litery, wielkie litery, cyfry, symbole). Zapisz wynik od razu w menedżerze haseł, zamiast go zapamiętywać lub wpisywać ręcznie.
Co sprawia, że hasło jest silne?
Długość, losowość i unikalność. Długie losowe hasło z bezpiecznego generatora, używane dokładnie do jednego konta, to złoty standard.
Czy używać generatora haseł do każdego konta?
Tak. Wygenerowane, unikalne hasła przechowywane w zaufanym menedżerze haseł to najprostsza i najsilniejsza obrona przed atakami typu credential stuffing.
Czy silne hasło musi zawierać symbole?
Symbole pomagają, ale długość i losowość znaczą więcej. Długa losowa fraza hasłowa (tower-citrus-bronze-quay-pear) może być tak silna jak krótsze hasło pełne symboli, a łatwiej się nią posługiwać.
Czy ten generator haseł jest bezpieczny?
Tak. Generator Coddy działa w całości w przeglądarce i korzysta z window.crypto.getRandomValues. Hasło jest generowane lokalnie i nigdy nie trafia na serwer.
Czy mogę używać wygenerowanych haseł we własnym kodzie?
Używaj zmiennych środowiskowych, menedżera sekretów albo zaszyfrowanego sejfu. Nie wpisuj prawdziwych danych logowania na sztywno w plikach źródłowych, nawet w prywatnych repozytoriach.