Password generator
Generate strong random passwords in your browser using the platform CSPRNG, with entropy reported in bits rather than a coloured bar.
Runs in your browser
Worth it when the password will be read off a screen and typed elsewhere.
This assumes the password was chosen at random. A memorable one is far weaker than the number suggests, because a real attacker guesses words and patterns first.
Length beats complexity: 20 lowercase letters carry more entropy than 8 characters of every class.
Generated and measured in this page. Nothing is transmitted, stored or logged.
Where the randomness comes from
Passwords here are drawn from crypto.getRandomValues, the browser’s
cryptographically secure generator, never from Math.random.
That distinction is not academic. Math.random is fast and predictable by
design: given enough output, its future values can be reconstructed. A password
generator built on it produces passwords that look random and are not, which
is worse than no generator at all because it feels safe.
Selection is also rejection-sampled rather than folded with a modulo. Taking
byte % 62 maps 256 values onto 62 characters unevenly, making the first eight
characters roughly 8% more likely than the rest. It is a small bias, it is
entirely avoidable, and avoiding it costs nothing — so bytes landing outside the
usable range are discarded and redrawn.
Entropy in bits, not a coloured bar
Strength is reported as bits of entropy, which is a number you can reason
about: it is length × log2(alphabet size), and each bit doubles the work of
guessing.
A bar labelled “strong” tells you nothing. 60 bits is roughly where an offline attack on a badly-hashed password stops being trivial; 80 is comfortable; above 128 the number stops meaning much because nothing else in the system is that strong.
The figure assumes the attacker knows the generator and the alphabet, and that only the choices are secret. That is the right assumption — it is how every real attack works.
Length beats complexity
The most useful thing on this page, and the thing most password rules get backwards.
20 lowercase letters carry about 94 bits. Eight characters using every class carry about 52. The long, simple password is vastly stronger, and far easier to type on a phone.
Character-class requirements — one uppercase, one digit, one symbol — mostly
push people towards Password1!, which is a dictionary word with predictable
decoration and is guessed early. If a form lets you use a long password, use a
long password.
Lookalike characters
I, l, 1, O, 0 and o are hard to tell apart in many fonts. Excluding
them costs a little entropy and saves transcription errors, so it is worth it
when the password will be read off a screen and typed somewhere else — a Wi-Fi
key, a device setup — and not worth it when it goes straight into a password
manager.
Nothing is uploaded
Generated in this page, and not stored anywhere. Closing the tab is all it takes to be rid of it.