Truly random. Centuries to crack.
Humans are terrible at inventing passwords. A passphrase — a handful of words
chosen truly at random — is easier to remember than Tr0ub4dor&3 and far
harder to guess. And when a site demands the old-fashioned kind, random ASCII characters
are here too. Everything happens in your browser; nothing is stored or sent.
How to run it safely — 6 steps
Browser extensions are the risk this page cannot touch. Anything you have added to your browser can read what appears on this page. For a passphrase that will guard something important, use a browser profile with nothing installed in it.
- Save this page to your computer while you are still online — it is one file and works from anywhere.
- Make a fresh browser profile — Chrome/Edge: profile icon → Add; Firefox:
about:profiles→ Create a New Profile. Install nothing into it, sign in to nothing. - Turn off Wi-Fi and unplug any network cable.
- Open the saved file in that profile and check the badge below reads Offline — no route out.
- Generate your passphrase, then write it down, memorize it or store it in your password manager.
- Close the browser completely before reconnecting.
And for the truly paranoid, take the randomness away from the computer entirely: roll dice. The EFF wordlist holds exactly 7,776 words — every outcome of five six-sided dice — so five rolls pick one word, repeated until your passphrase is long enough. Look each roll up in the EFF's published list, or a printout of it if even the lookup should happen off-screen. Physical dice are randomness nobody has to audit.
Math.random. Edit the box to test a
password of your own; nothing is saved, recorded or sent anywhere.Why should I use a random passphrase?
Because humans are terrible at creating secure passwords. We base them on things we can remember — names, dates, common words — then add some spice with a capital letter, a number or a symbol. Crackers know every one of those patterns, and passwords built from them fall instantly.
| Pattern | Example | Time to crack |
|---|---|---|
| A common word | december | 18 milliseconds |
| A keyboard pattern | qwerty | 10 milliseconds |
| The family dog | rusty | 27 milliseconds |
| A date or zip code | 03261981 | 2 seconds |
| Letter→number swaps | S4nfr4n | 639 milliseconds |
| Four random words | mergers decade labeled manager | 6,000,126 centuries |
Words or ASCII characters — which should I use?
Both are offered here, and generated at random they are both strong; the difference
is what your memory has to carry. p%9y#k&yFm? and
logic finite eager ratio take a comparable number of centuries to crack,
but only one of them survives being typed from memory. Use words for anything you
personally have to remember and type — a master password, a computer login. Use
ASCII characters where a password manager fills the field for you, or where a
site's length limit squeezes out a passphrase.
How are passwords actually cracked?
Roughly in this order: first wordlists — the top 10,000 passwords crack about 30% of
accounts in under a second — then the same lists with common substitutions
(december → D3cember), then combinations like name + date, and
finally brute force over every character. Depending on how a site protects its password
database, modern hardware makes between 10,000 and 350 billion guesses per second.
A password built from any recognisable pattern eventually falls to this; a passphrase
chosen truly at random has no pattern to exploit.
What does the crack time mean?
It comes from zxcvbn, Dropbox's password strength estimator, assuming
10,000 guesses per second — consistent with passwords hashed using bcrypt, scrypt or
PBKDF2. If a service stores passwords with plain MD5 or SHA-256, guessing runs millions
of times faster and no amount of password strength really helps. Treat the figure as a
comparison tool, not a promise.
What is the difference between the two wordlists?
The EFF large wordlist is 7,776 words chosen by the Electronic Frontier Foundation specifically for passphrases: every word is common enough to spell, no word is a prefix of another, and easily-confused pairs were removed. Its 7,776 entries match the outcomes of five dice rolls, so the same list works offline with physical dice. Common English is 7,459 everyday words drawn from the most frequently used words in English — the phrases can read a little more naturally, at the cost of the EFF list's careful curation. Both lists give about 13 bits of randomness per word, so the strength is essentially the same; pick whichever produces phrases you find easier to remember.
Where does the randomness come from?
From crypto.getRandomValues, the random number generator your browser
provides for security work. The everyday one, Math.random, is predictable
enough that it should never choose a password, and it appears nowhere in this file.
None of the three pools is a round number in binary, so each draw uses rejection
sampling — a draw that lands past the end of the pool is thrown away and taken again —
which keeps every word, and every character, exactly as likely as every other. No
modulo, so no modulo bias.
What exactly is in the ASCII pool?
Every printable ASCII character except the space — 94 in all: letters in both cases,
the digits, and every symbol on a US keyboard. That is the classic
ipz2!az8k%0h-style random password. Each character carries about 6.6 bits,
and the pool is drawn from with the same cryptographic generator and the same rejection
sampling as the wordlists, so every symbol is exactly as likely as every other. Some
sites reject certain symbols; if one does, just generate again — never trim or swap
characters by hand.
How many words — or characters — do I need?
Each word adds about 13 bits, and every bit doubles the work a guesser faces. Four words (~52 bits) is a strong everyday password. Five or six words is a good master password for a password manager. Eight or more approaches the strength of the keys that protect cryptocurrency wallets. In ASCII mode the same arithmetic runs per character: each of the 94 symbols carries about 6.6 bits, so 8 characters matches a 4-word phrase and 16 characters (~105 bits) beats an 8-word one. The meter above shows the honest count for whatever you generate.
What else should I do beyond a good passphrase?
Three things: use a password manager, so each site gets its own password; use a strong master passphrase for that manager — this is exactly what a generated passphrase is for; and never reuse a passphrase between sites, because a breach at one becomes a breach at all of them.
Does anything I type here leave my computer?
No. The page never sends anything anywhere, and it tells your browser to block the attempt if it ever tried — nothing at all is fetched from the internet, not a typeface, not an image, not a line of code. Nothing is saved or logged either. That covers this page only, though: a browser extension can read what you type here, and no web page can stop it.