Generator haseł
Działa w całości w Twojej przeglądarce. Twoje pliki i dane nigdy nie opuszczają Twojego urządzenia.
Entropia: 130 bitów
O tym narzędziu
To narzędzie tworzy losowe hasła z klas znaków, które wybierzesz: małe litery, wielkie litery, cyfry i symbole. Ustaw długość, zaznacz klasy do uwzględnienia i opcjonalnie wyklucz znaki łatwe do pomylenia, jak 0, O, 1, l i I, które trudno odróżnić na ekranie albo na wydrukowanej karcie. Wygenerujesz jedno hasło albo od razu sto.
Jak losowe są te hasła?
Każdy znak jest wybierany za pomocą crypto.getRandomValues() z Web Crypto API, tego samego źródła, którego przeglądarki używają do kluczy kryptograficznych, a nie Math.random(), które nie jest zaprojektowane pod kątem nieprzewidywalności. Wybór losowego znaku z puli, której rozmiar nie jest potęgą dwójki, jest trudniejszy niż się wydaje: naiwne branie losowego bajtu modulo rozmiar puli faworyzuje niektóre znaki. To narzędzie omija ten problem próbkowaniem odrzucającym: pobiera losowe bajty i odrzuca każdą wartość, która wypadłaby poza równy wielokrotny rozmiar puli, dzięki czemu każdy znak w puli ma finalnie taką samą szansę. Znaki są potem tasowane algorytmem Fishera-Yatesa opartym na tym samym źródle losowości, po tym jak najpierw zagwarantowano co najmniej jeden znak z każdej wybranej klasy, więc hasło z włączonymi wszystkimi czterema klasami nigdy przypadkiem nie zabraknie mu symbolu. Wskaźnik entropii pokazuje, ile bitów losowości ma hasło, liczone jako długość razy log2 rozmiaru puli, i pozwala szybko porównać ustawienia przed wygenerowaniem.
Czy moje hasło jest gdzieś wysyłane?
Nie. Generowanie hasła odbywa się w całości w przeglądarce za pomocą Web Crypto API, a wynik, wybrane ustawienia ani samo hasło nie są nigdzie wysyłane, logowane ani przechowywane. Dzięki temu narzędzie nadaje się do prawdziwych haseł do kont, a nie tylko do danych testowych: narzędzie generujące hasła po stronie serwera wymagałoby zaufania, że nigdy ich nie zapisuje, a tutaj ten problem znika, bo z serwerem w ogóle się nie rozmawia.
Do czego się to przydaje?
Typowe zastosowania to zakładanie nowych kont, dane dostępowe do baz danych czy usług, klucze API i współdzielone sekrety, albo partia jednorazowych haseł do kont testowych. Jeśli wyłączysz wszystkie klasy poza jedną albo ustawisz długość krótszą niż liczba wybranych klas, narzędzie od razu o tym poinformuje zamiast po cichu wygenerować hasło słabsze, niż zamierzałeś. Aktualne wytyczne dotyczące haseł znajdziesz w NIST SP 800-63B, a o tym, jak powstaje leżąca u podstaw losowość, przeczytasz w dokumentacji MDN dla Crypto.getRandomValues().