toolfree

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

Length: 20

Worth it when the password will be read off a screen and typed elsewhere.

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.