How this password generator works
Every password on this page is produced inside your own browser tab by crypto.getRandomValues, the operating system's cryptographically secure random number generator. Nothing is generated on a server, so there is no request to intercept, no log to subpoena and no database to breach. You can confirm it: open your browser's developer tools, switch to the Network tab, and generate a hundred passwords. Nothing moves.
Two details separate a careful generator from a careless one, and most free tools online get at least one of them wrong.
The first is modulo bias. The obvious way to pick a random character is to take a random 32-bit number and divide by the alphabet size, keeping the remainder. Because 232 is not evenly divisible by, say, 94, the first few characters of the alphabet come up very slightly more often than the last few. It is a small skew, but it is a real, measurable reduction in the strength you think you are getting. This page uses rejection sampling instead: any random value that falls into the uneven tail is thrown away and a fresh one drawn, so every character in the pool is exactly equally likely.
The second is the "one of each type" rule. Many generators satisfy a site's "must contain an uppercase letter and a number" requirement by forcing specific positions to specific types — an uppercase letter always first, a digit always last. That is predictable, and predictability is exactly what an attacker's rule engine exploits. This page instead generates a fully random string and rejects it if it happens to miss a required type, which keeps the result uniformly distributed across every valid password. The entropy figure shown accounts for the small amount that requirement costs, calculated exactly by inclusion–exclusion rather than guessed at.
What the entropy number actually means
Entropy, measured in bits, is the honest way to describe password strength. A password with n bits of entropy is one drawn uniformly from 2n equally likely possibilities. Add one bit and you double the work an attacker has to do. Twenty random lowercase letters is about 94 bits; a five-word passphrase from a 1,296-word list is about 51.7 bits; a four-digit PIN is 13.3 bits no matter how cleverly you choose it.
This matters because the coloured strength meters on most sites are not measuring entropy at all. They count character types and length and award a green bar. By that logic P@ssw0rd1 scores well — it has uppercase, lowercase, a digit and a symbol across nine characters — while it is in fact one of the first few thousand guesses any cracking rig tries. The number on this page is computed from the actual generation space: the size of the character pool, the length, and any rules you switched on. No tool can measure the guessability of a password a human invented without knowing how they invented it, which is why a generated password with a known character pool is the only one whose strength can be stated honestly.
Length beats complexity — and the standards now say so
NIST Special Publication 800-63B, the US federal digital identity standard, was revised in 2025 and reversed decades of received wisdom. Under Revision 4, a password used as the only factor protecting an account should be at least 15 characters; 8 is the floor when multi-factor authentication is also in place. Systems are told to accept at least 64 characters, to allow spaces and Unicode so that passphrases work, and to stop imposing composition rules — no more mandatory "one uppercase, one number, one symbol". Scheduled expiry is out too: passwords should be changed on evidence of compromise, not on a 90-day timer.
The reasoning is behavioural rather than mathematical. Complexity rules and forced rotation do not produce random passwords; they produce Summer2025! followed by Autumn2025!. Length, by contrast, cannot be faked. Revision 4 also makes screening against known-compromised passwords a requirement — a rule that matters most for passwords people invent themselves. A generated password never appears on a compromised list, because it has never existed before.
If you want to know whether a password you already use has appeared in a breach, Have I Been Pwned offers a range-query API that never sees your full password.
Random string or passphrase?
Use a random string for anything you will never type from memory — which, if you use a password manager, is almost everything. Twenty characters across all four types is comfortably beyond reach of any offline attack that exists or is plausibly coming.
Use a passphrase for the handful you must actually remember: your password manager's master password, your device login, your email account. Words from a fixed list are far easier to recall and to type on a phone or a TV remote than a symbol soup, and the entropy is exact and calculable because the words are drawn uniformly at random. Six words from the 1,296-word list is 62 bits; seven is 72; eight is 82.7. The list used here is the EFF short wordlist, chosen because every word is at most five letters, unambiguous when spoken aloud, and distinct enough from the others that autocomplete and typo-correction work in your favour.
What does not work is inventing a passphrase yourself. "correct horse battery staple" is strong because the words were chosen by dice; the same four words picked by a person thinking of things in the room are not. Human word choice clusters hard, and cracking wordlists are built from exactly that clustering.
Where the rest of the risk lives
A generated password removes one class of risk and leaves the others standing. Reuse is the big one: a 30-character password used on two sites is only as safe as the weaker site. Generate a new one per account and store them somewhere — a password manager, or genuinely, written on paper in a drawer, which beats reuse comfortably for most people's threat model. Phishing is the other: no password length defends against typing it into a convincing fake, which is why phishing-resistant multi-factor authentication (a passkey or a hardware key) is now the thing standards bodies push hardest.
And treat the clipboard as leaky. Other applications can read it, and on some systems it syncs between devices. Paste straight into your password manager and then copy something harmless over the top.