Length beats cleverness
Password strength is measured in bits of entropy: the number of guesses an attacker needs, as a power of two. For a random password it is simply length × log₂(alphabet size). A 16-character password drawn from about 70 symbols has roughly 98 bits, far beyond what any attacker can brute-force, while a 12-character lowercase-only password has only about 56 bits.
Each extra character multiplies the work by the size of the alphabet, which is why increasing length is the cheapest way to gain strength.
How this generator works
- Randomness comes from your browser's cryptographically secure generator (
crypto.getRandomValues), not fromMath.random. - Characters are picked with rejection sampling so no symbol is more likely than another, and at least one character from every selected set is guaranteed before the result is shuffled.
- Look-alike characters (I, l, 1, O, 0) are left out by default so a password is easy to read or type from a screen. You can include them.
- Nothing is sent to a server. The password exists only in your page until you close it.
Habits that matter more than the generator
- Use a different password for every account. Reuse is how one breach becomes ten.
- Store them in a password manager so you only need to remember one strong master passphrase.
- Turn on two-factor authentication, preferably with an authenticator app or a security key, for email, banking and your password manager.
- Never share passwords by chat or email, and be suspicious of any page that asks for one after a link.