What this does
Every click produces a fresh random password, built on your own device from your browser’s cryptographic random number generator. Choose the length and which character types to draw from, and the tool shows the exact strength of what it made, measured in bits of entropy rather than a coloured bar.
Nothing you generate here is sent, stored or logged. There is no server-side generation, no history, and no way for anyone, including this site, to see what was made. The FAQ below explains how to verify that claim in your own browser rather than take it on trust.
How to use it
- Set the length. The default of 20 is right for anything a password manager will remember for you.
- Tick the character types the account accepts. All four stay on unless a site refuses symbols.
- Generate until you see one you are happy with, then copy it. Each press is a completely independent draw.
- Paste it into your password manager first, then into the sign-up form.
Where the randomness comes from
The difference between a password generator worth using and one that is theatre is a single decision: where the randomness comes from.
This tool draws every character from crypto.getRandomValues, the browser’s
cryptographically secure generator, which is seeded by the operating system
from hardware noise. It never touches Math.random, which exists for shuffling
animations, not secrets: its internal state can be reconstructed from a
handful of outputs, at which point every “random” password it ever produced
becomes predictable.
There is a second, subtler mistake this tool avoids. The natural way to turn a
random number into a character is value % alphabet_size, and it is quietly
biased: 2³² raw values cannot divide evenly into 94 characters, so the first
few characters of the alphabet come up fractionally more often than the rest.
The fix costs one line: values landing in the uneven remainder are thrown away
and redrawn. This is called rejection sampling, it is what operating systems do
internally for the same reason, and it is what makes every character here an
exactly even draw.
The same principle applies to the “at least one of every type” option. The common shortcut is to generate freely and then swap a random position for a digit, which stamps detectable structure into the result. This tool instead regenerates the whole password until one naturally contains every required type, which keeps every acceptable password exactly equally likely.
What the entropy number means
Entropy measures how many guesses an attacker needs, expressed as a power of two: 131 bits means 2¹³¹ possibilities, and on average an attacker must try half of them before hitting yours. Each additional bit doubles the work.
The readout is computed honestly. Requiring one of every character type slightly shrinks the space of possible passwords, so the number shown is calculated over the passwords this tool can actually produce, not from the textbook formula that ignores the constraint. The difference is a fraction of a bit, and a security page that rounds in its own favour has told you something about itself.
The crack-time line beneath it assumes an attacker who has stolen a password database stored with a fast hash and guesses at a trillion per second. That is not a nation state: a single consumer graphics card benchmarks at around three hundred billion guesses per second against Windows NTLM hashes, so a trillion is four cards in one machine. The assumption errs on the attacker’s side deliberately. In the other direction, a site that stores passwords with a properly slow hash such as bcrypt cuts that rate by a factor of around a million, and an online login form, which allows a few attempts per second at best, makes every time shown a wild underestimate of your safety margin.
Limitations
A perfect password does not survive reuse. The overwhelmingly common way passwords are broken is not guessing but leakage: one site is breached and the password is tried everywhere else. Generate a different one per account and let a password manager do the remembering.
Your clipboard is out of scope. Copying puts the password wherever your clipboard goes, which on some systems includes sync to other devices and clipboard history. Paste it where it is needed, then copy something harmless over it if that concerns you.
Randomness cannot fix a weak recovery path. If the account can be reset through a guessable security question or an email address with a poor password, the strong password guards a side door. Secure the recovery route to the same standard.