Where the bits come from
This memorable password generator makes passwords a human can remember and type, like Rumble-Gravy-Unroll-Plaza-42!, that still get past the "needs an uppercase letter, a number and a symbol" box on most sign-up forms. You control the number of words, the separator, capitalization, and how many digits and symbols get added and where. There's also a pronounceable mode that builds fake-but-sayable words out of random syllables.
Everything happens in your browser with crypto.getRandomValues(). The wordlist is a static file that loads with the page. Nothing you generate is sent to me or anyone else.
The strength number next to the password is honest, which is rarer than it should be. It counts only the random choices this page made for the exact settings you picked, and it assumes the attacker knows those settings. If a setting drops you below about 60 bits, the page says so.
Memorable beats complex and forgotten
The classic corporate password is eight characters with one of everything, changed every 90 days. What people actually do with that rule is predictable: Summer2024!, then Fall2024!, then a sticky note under the keyboard, then the same password on every site because nobody can remember eleven of those. The password looks complex and is guessed in minutes by anyone who has seen a list of real leaked passwords.
A password you can actually remember gets used as intended. You don't write it on the monitor, you don't reuse it out of desperation, and you don't click "forgot password" every Monday, which routes your security through your email inbox. Memorability is a security feature. The trick is getting it without the human choosing the words, since humans are terrible at randomness.
This page is not the same as my random passphrase generator, which makes plain random words with spaces. That's the right tool for a password manager or disk encryption where nobody imposes rules. This one is for the places that do: website sign-ups, work systems, and anything that insists on a capital letter and a number.
What the strength number counts
Entropy here means the number of equally likely passwords this exact pattern could have produced, written as a power of two. If a pattern can produce 261 different passwords, an attacker who knows the pattern needs up to 261 guesses and on average half that. Here is what each piece is worth:
| Piece | Choices | Bits |
|---|---|---|
| One word from the EFF large wordlist | 7,776 | 12.92 |
| One random digit | 10 | 3.32 |
One symbol from ! @ # $ % & * ? | 8 | 3.00 |
| Random capitalization, per word | 2 | 1.00 |
| One word in CAPS, out of 4 words | 4 | 2.00 |
| Digit block in a random spot, 4 words (5 possible spots) | 5 | 2.32 |
| Separator, fixed capitalization, digits at the end | 1 | 0 |
The default, four capitalized words with a hyphen, two digits and one symbol at the end, works out to 4 × 12.92 + 2 × 3.32 + 3 = about 61.3 bits. The fixed parts (hyphens, capital letters on every word, the number at the end) add nothing, because the attacker assumes them. They exist to satisfy a form's rules. Look at the table again and notice a single word is worth about four digits. When you want more strength, add a word.
One more honest detail: if you click "new password" 50 times and keep the one you like, you have given away up to log2(50), about 5.6 bits. A few clicks is fine. A long hunt for a cute phrase is you picking the password again.
The XKCD 936 idea, described accurately
XKCD 936, "Password Strength" is the comic everyone cites and half the internet misquotes. It breaks down a password like Tr0ub4dor&3 as an uncommon base word with a capital, common letter-for-number swaps, a punctuation mark and a digit, and estimates about 28 bits, because every one of those tricks is a predictable pattern. Against a plausible attack on a weak remote web service at 1,000 guesses per second, the comic puts that at about 3 days.
Then it shows correct horse battery staple: four random common words at about 11 bits each (which implies a list of about 2,000 words), 44 bits, about 550 years at the same 1,000 guesses per second. And much easier to remember, which is the punchline.
Two things people get wrong. First, the strength comes from the words being picked at random, not from being words. Four words you chose because they sound nice are not 44 bits. Second, 44 bits was measured against slow online guessing. If a site leaks its password database and stored the hashes badly, attackers guess offline at vastly higher speeds, and 44 bits is not enough. That's why this page uses a list of 7,776 words (12.9 bits each) and nags you below 60 bits.
Website password rules and word passwords
The current NIST guidance, SP 800-63B, says verifiers shall not impose composition rules like requiring mixtures of character types, should allow at least 64 characters, and should accept spaces and all printable ASCII. It sets a 15-character minimum for passwords used as the only factor. Plenty of sites haven't read it. So you run into a mix of rules, and a word password handles most of them:
- Uppercase, lowercase, digit and symbol required: the default pattern covers all four. The checkmarks under the password show which rules the current one meets.
- No spaces allowed: use a hyphen, period, underscore or no separator.
- Only certain symbols allowed: the symbol set here sticks to
! @ # $ % & * ?, a small, conservative set that avoids quotes, backslashes and brackets. If a site rejects one anyway, regenerate. - Maximum length of 16 or 20: this is where word passwords hurt. EFF words average about 7 letters. Switch to the pronounceable style, which gets about 10.3 bits per 3 letters, or use a random password from the strong random password generator and keep it in a password manager.
- "Cannot contain dictionary words": a rule written by someone who saw a list of leaked passwords and drew the wrong conclusion. Use the pronounceable style there.
How attackers actually guess passwords
Nobody guesses aaaa, aaab, aaac. Real cracking starts with what people really use.
Online guessing means trying passwords against a live login page. Sites rate limit, lock accounts and add CAPTCHAs, so attackers try a short list of the most common passwords across many accounts, or replay username and password pairs leaked from other sites (credential stuffing). Reused passwords die here, no matter how complex they are.
Offline guessing happens after a password database leaks. The attacker has the hashes and can test guesses on their own hardware with no rate limit. How fast depends on how the site stored them: a slow hash like bcrypt or Argon2 means far fewer guesses per second than a fast, unsalted hash.
Either way, the guesses come from wordlists plus rules. Wordlists are built from previously leaked passwords, dictionaries, names, sports teams and song lyrics. Cracking tools like hashcat then apply mangling rules to each entry: capitalize the first letter, append a year or a couple of digits, add ! at the end, swap a for @ and o for 0, glue two words together. That's why P@ssw0rd2024! falls quickly. Every trick in it is a rule someone already wrote.
Generated word passwords survive this for a simple reason. The attacker can know you used the EFF list, know your exact pattern, and apply every rule they like, and they still face 7,7764 combinations of words before counting the digits and symbol. The strength comes from the random choice, not from being clever, so knowing the method doesn't help them.
Pronounceable passwords
Pronounceable mode builds random syllables instead of picking real words. Each syllable is a consonant from b d f g h j k l m n p r s t v z (16 of them), then a vowel from a e i o u (5), then, in the default shape, another consonant. That gives:
- consonant-vowel: 16 × 5 = 80 options, about 6.32 bits per syllable
- consonant-vowel-consonant: 16 × 5 × 16 = 1,280 options, about 10.32 bits per syllable
Because every syllable has the same shape, each result can come from only one sequence of choices, so the bits simply add up. The default is six consonant-vowel-consonant syllables with a hyphen every two, a capital first letter and two digits at the end, something like Bapdor-kilmus-tefzan42: 6 × 10.32 + 2 × 3.32 = about 68.6 bits in 22 characters. The hyphens and the capital are fixed, so they count for nothing.
It's more compact than real words (about 3.4 bits per letter against roughly 1.8 for EFF words), which is why it's the fallback for length-capped sites. It's also a bit harder to remember, since "bapdor" doesn't mean anything. Say it out loud a few times. It sticks better than you'd think.
Which passwords you actually need to memorize
Almost none. Here's the short list I'd put in your head:
- Your password manager's master password. It protects everything else, so make it 5 or 6 words, 65 bits or more, and use it nowhere else.
- Your computer and phone logins. You type them many times a day, so memorable matters. (A phone usually takes a PIN, and my PIN generator handles those.)
- Your main email account. Email is the reset button for every other account. If you can't get into it when your phone is lost, you're in trouble.
Maybe your home Wi-Fi password if you're the one who keeps typing it for guests. Everything else goes in a password manager as a long random string you never see. Turn on two-factor authentication for the manager and the email account too. A memorable password is great, but it can still be phished.
When to use a password manager instead
For every account that isn't on the list above. A manager fills in a 24-character random password as easily as a word password, it remembers which site each one belongs to, and it won't fill it into a lookalike phishing site. That's something your memory won't do for you. Use the strong random password generator or the manager's own generator for those.
The memorable style is still handy for passwords a manager can't type for you: logging into a computer before the manager is even open, a work system on a machine you don't control, or reading a password to someone over the phone.
Generate one yourself, offline
The same thing in Python with the secrets module, using the EFF list straight from EFF:
curl -sO https://www.eff.org/files/2016/07/18/eff_large_wordlist.txt
python3 -c 'import secrets; w=[l.split()[1] for l in open("eff_large_wordlist.txt")]; print("-".join(secrets.choice(w).capitalize() for _ in range(4)) + "-" + "".join(secrets.choice("0123456789") for _ in range(2)) + secrets.choice("!@#$%&*?"))'
And a pronounceable one, six consonant-vowel-consonant syllables:
python3 -c 'import secrets as s; c="bdfghjklmnprstvz"; v="aeiou"; print("".join(s.choice(c)+s.choice(v)+s.choice(c) for _ in range(6)))'
Don't use random instead of secrets in Python. The random module is predictable by design.
How to actually remember it
- Make a picture. "Rumble Gravy Unroll Plaza" is a thunderstorm of gravy rolling across a town square. Silly works.
- Type it, don't just read it. Type it a few times right after you set it, then again later that day and the next day. Muscle memory kicks in fast.
- Keep a paper backup while you learn it, somewhere private like your wallet, then shred it once you've got it. Or store it in your password manager if it isn't the master password.
- Don't "improve" it. Swapping a word for one you like better, or turning
einto3, adds little and makes the math on this page wrong.
Memorable Password FAQ
What makes a password memorable but still strong?
Real words that a computer picked at random. Your brain remembers words far better than a jumble of characters, and the strength comes from how many words the generator could have picked, not from how weird the password looks. Four random words from a 7,776-word list is about 52 bits before you add any numbers or symbols. Add a fifth word and you are near 65.
Is a password made of words easy to crack?
Not if the words were chosen at random from a big list. Attackers do try dictionary words, but a generator picking 4 or 5 words from 7,776 creates quadrillions or more combinations even when the attacker knows the exact list and pattern. Words you chose yourself, song lyrics and famous quotes are a different story. Those get guessed.
How many bits of entropy should a memorable password have?
I aim for at least 60 bits for anything that matters, which is why this page warns below that. For the handful of passwords that protect everything else, like a password manager master password, I use 5 or 6 words, about 65 to 78 bits before extras.
Why does adding a number and a symbol barely raise the strength?
Because a digit has only 10 options and a symbol only 8, and when they sit in a predictable spot like the end, the spot adds nothing. A random digit adds about 3.3 bits and one symbol from this page's set of 8 adds 3 bits. A single extra word adds about 12.9 bits. Numbers and symbols are here to satisfy website rules, and the words do the real work.
What is a pronounceable password?
A random string built from syllables, like consonant plus vowel plus consonant, so it can be read out loud even though it is not a real word. Each consonant-vowel-consonant syllable here has 1,280 possibilities, about 10.3 bits. It packs more strength per character than real words, which helps on sites with a short maximum length, but it is a little harder to remember.
Is this the same as the XKCD correct horse battery staple method?
It is the same idea with a bigger wordlist. The comic used four random common words at about 11 bits each for 44 bits. This page uses the EFF large wordlist at about 12.9 bits per word and defaults to four words plus a number and a symbol, a little over 61 bits.
Are the passwords generated here sent to your server?
No. Everything runs in your browser with crypto.getRandomValues, and the wordlist is a static file loaded with the page. Nothing is sent or stored. You can open your browser network tab and generate as many as you like to check.
Which passwords should I memorize instead of saving in a password manager?
Very few: the master password for your password manager, the login for your computer and phone, and your main email account, since email resets everything else. Everything else can be a long random password that lives in the manager.
Can I regenerate until I get words I like?
A few clicks is fine. Choosing your favorite out of N results costs at most log2 of N bits, so picking from 8 costs up to 3 bits. Clicking through hundreds looking for a cute phrase starts to hand the choice back to your own taste, which is what attackers model.
Wordlist: the EFF Large Wordlist for Passphrases by the Electronic Frontier Foundation, used under a Creative Commons Attribution license. The dice numbers were removed; the words are unchanged.
Related tools: Random Passphrase Generator, Strong Random Password Generator, Wi-Fi Password Generator, PIN Generator, and my opinionated security best practices.
-Sethers