I launched my business in 2025 with 150 dollars.
That’s a sentence. It’s also, with a little mangling, a password: !smb!2025W150@D. The password it generates looks like something a machine might cough up — uppercase, lowercase, numbers, symbols, but it came from something your brain can hold onto.
This is the promise of a mnemonic password generator: turn a sentence you can remember into a password that looks like garbage to an attacker using a transformation rule.
I dug into the numbers behind mnemonic passwords via a paper from Bauhaus-Universität Weimar presented at NDSS ’17. What I found is that the approach can work, but only if you understand where the entropy comes from, where it breaks down, and how to build a generator that doesn’t give you a false sense of security.
Key Takeaways
A 16-word sentence yields roughly 80 bits of entropy using the best generation rule — comparable to a 6-word Diceware passphrase, though that figure remains an estimate, not a guarantee.
The strongest generation rule from the research is simple: use the 7-bit visible ASCII set, take every second word, and use only the first character of each word.
Lowercase-only mnemonic passwords provide strength comparable to those using mixed character sets, debunking the old “you need symbols” advice.
Table of Contents
What Is a Mnemonic Password Generator, and Why Does It Work?
Three steps: create a sentence you can remember, memorize it, and apply a transformation rule — usually grabbing the first letter of each word, maybe adding some punctuation or numbers. The result looks random to anyone who doesn’t know the original sentence.
The research behind this rests on three assumptions, supported by studies from Yang et al., Kuo et al., Yan et al., and Vu et al. Passware also notes that such passwords resist common cracking strategies.
- Humans remember mnemonics. A sentence like I started my business in 2025 with 150 dollars is easier to hold in your head than a random 16-character string.
- Guessing the mnemonic is infeasible. If an attacker can’t reconstruct the sentence, they can’t derive the password.
- The password inherits that strength. That transformation preserves the difficulty of guessing the original.
These assumptions rest on Kerckhoffs’ principle: assume the attacker knows your method. If they know your rule, the only protection is your sentence’s unpredictability.
The Entropy Problem: Why You Can’t Trust Your Sentence
Here’s the gut punch: you cannot calculate the entropy of a sentence you wrote yourself. It’s not a formula you can solve. Entropy in this context means the number of guesses an attacker would need, on average, to crack your password. For a random string, you can compute that exactly — 128 bits if you flipped 128 coins. For a sentence you wrote, it’s a mess.

Why? Because natural language is patterned. The researchers addressed this by training position-dependent language models with interpolated Witten-Bell smoothing on the Webis-Sentences-17 corpus (3.4 billion sentences from ClueWeb12): the Webis-Sentences-17 corpus, which contains 3.4 billion sentences extracted from the ClueWeb12 web crawl. They used SRILM v. 1.7.1 and KenLM to build n-gram models and Markov chains, and also experimented with negative binomial models to capture the statistical structure of natural language.
That’s 27.3 terabytes of web pages, filtered down to sentences that match the complexity of real human-chosen mnemonics. The idea was to simulate what an attacker might know about the structure of English sentences.
Their estimate: grammatical language reduces entropy by roughly half compared to random words from a known list. Where randomly selected words from a list like Diceware’s 7,776 entries give you about 12.9 bits per word, a grammatical sentence gives you about 5 bits per word. That’s a drop.
Do the math: a 16-word sentence at 5 bits per word gives you roughly 80 bits of entropy. That’s solid — about the same as a 6-word Diceware passphrase that uses a separator. But it’s an upper bound, not a guarantee. The entropy depends on how “weird” your sentence is. And you can’t be sure you’re above or below that estimate.
Implementation Guide: Building a Mnemonic Password Generator
The researchers evaluated 18 generation rules to find which one maximizes strength. Spoiler: there’s a winner.

The Winning Recipe
The strongest generation rule from the research uses:
- 7-bit visible ASCII character set (the full range of printable characters, from space to tilde)
- Every second word (skip words 1, 3, 5, etc. — use words 2, 4, 6, …)
- Only the first character of each word
So for the sentence about starting a business in 2025 with 150 dollars, you take “started”, “business”, “2025”, “150”, “dollars” — wait, that’s five words if you count properly. Let me rephrase: every second word starting from the second word means words 2, 4, 6, … “started”, “business”, “2025” would be words 2 and 4, but the sentence has only 10 words. I realize I’m confusing the example. Let me give a clean illustration.
Example sentence: My cat jumped over the lazy dog at midnight.
Words: 1:My, 2:cat, 3:jumped, 4:over, 5:the, 6:lazy, 7:dog, 8:at, 9:midnight.
Every second word starting from the second: cat (2), over (4), lazy (6), at (8).
First character of each: c, o, l, a ? cola.
Now you add ASCII characters — maybe c!o@l#a$ — but the core strength comes from the pattern, not the symbols.
Why does the “every second word” rule work? Because it breaks the natural grammatical flow, and using only the first character adds 2–3 bits of entropy over using whole words. In English, adjacent words are highly predictable (“green” almost always followed by “eggs and ham” feels inevitable), but words two apart are much less correlated. And using only the first letter adds 2–3 bits of entropy over using whole words, because the attacker can’t use the full word’s meaning — which is the insight behind designing easy passwords to remember but hard to guess.
Code Skeleton (Python-ish)
Here’s a conceptual implementation:
“`python import string
python def generate_mnemonic_password(sentence: str) -> str: words = sentence.split() # Take every second word starting from index 1 (the second word) selected = words[1::2] # Take first character of each, joined into a string prefix = ”.join(word[0] for word in selected) # Optionally add ASCII symbols at predictable positions # This is where you’d customize for mnemonic passwords return prefix
To add entropy estimation, you’d need a language model. The simplest practical check is to run the generated password through zxcvbn, the same library that powers many password strength meters. It won’t give you the exact entropy from the paper’s language model, but it’ll catch obvious weaknesses — like picking a famous quote or relying too heavily on common words from a mnemonic passwords list.
What to Actually Do
Your generator should:
- Accept a sentence from the user (or generate one).
- Apply the ASCII + every-second-word + first-character rule.
- Optionally inject 2–3 ASCII symbols at fixed positions (like after the first, third, and fifth characters).
- Check the result against a known-bad list (no famous quotes, no song titles).
- Estimate entropy conservatively — assume 5 bits per word in the original sentence.
Comparing Mnemonic Passwords to Diceware and the Real World
Mnemonic passwords are stronger against both online and offline attacks compared to real-world password distributions (Yahoo!, RockYou, Battlefield Heroes) but are weaker against online attacks than Diceware passphrases of similar length.
Against real-world passwords: huge win
The researchers compared mnemonic passwords against leaked datasets — Yahoo! passwords (min-entropy H? ? 6.5), RockYou, MySpace, and university passwords. The numbers are stark:
- Yahoo! passwords had a min-entropy (the worst-case scenario for the most common password) of about 6.5 bits.
- Mnemonic passwords from the study had min-entropy between 11.4 and 12.8 bits.
That’s roughly double. Mnemonic passwords are an upgrade over the garbage people actually use — ‘Password123!’, ‘qwerty2024’, ‘iloveyou’, and all the others that still dominate breach lists., “Password123!”, “qwerty2024”, “iloveyou”, and all the others that still dominate breach lists.
Against Diceware: depends on the attack
Diceware — the ‘correct horse battery staple’ approach (estimated 44 bits based on 2048^4), uses random words from a known list of 7,776 entries. Each word adds roughly 12.9 bits of entropy. A 6-word Diceware passphrase gives you about 77 bits (6 × 12.9 bits per word), comparable to a 16-word mnemonic at 80 bits (16 × 5 bits per word). But here’s the catch: Diceware’s entropy is knowable and guaranteed, because the words are chosen at random. Your sentence’s entropy is at best an estimate.
For offline attacks — where the attacker has the password hash and can guess billions of times per second, both methods can reach adequate strength with enough words. A 16-word mnemonic at 80 bits is solid against offline cracking.
For online attacks — where the attacker is limited to a few attempts per second against a live server, mnemonic passwords fare worse than Diceware, because their min-entropy per character is lower. An attacker trying to log in to your account can’t do billions of guesses, but they can try common sentence-based patterns. The research found that mnemonic passwords offer less resistance against online attacks than Diceware passphrases of similar length (average 78 characters per rule across 2.8×10^7 passwords).
Risks and Limitations: When Mnemonic Passwords Fail
Famous quotes and published works. If your sentence comes from a movie, book, song lyric, or well-known speech, its entropy drops precipitously. Attackers include those in their dictionaries. To be or not to be that is the question — that’s trivially crackable, even after transformation.
The paper explicitly warns against this: ‘there is always a risk that an individual using this approach will choose a sentence that is a quote from a published work, in which case the entropy drops precipitously.’ (NDSS paper).
Personal biases. You think your sentence about your dog and your first car is unique, but attackers know that people pick from a small set of topics: pets, family, jobs, hobbies. The patterns hold even after mangling the sentence.
Even with a good rule, the entropy is unknowable. That 80-bit estimate is the best we’ve got, but it’s from a model trained on web sentences, not on your specific mental grammar. You can’t be 100% sure your sentence is weird to an attacker.
For critical accounts, a password manager is superior. 1Password, Proton Pass, Keeper — these generate random, full-entropy passwords that require no estimation. Mnemonic password generators are a useful compromise for passwords you need to memorize without a manager (like the master password to the manager itself, or a work account where you can’t install software). But they’re a fallback, not the ideal.
Debunking Outdated Password Advice
Remember the old rule — at least 8 characters, use uppercase, lowercase, numbers, and symbols? That’s called the 8-4 rule, and it’s on its way out. Modern NIST guidelines emphasize length over character variety. A 12-character phrase with no symbols beats an 8-character string with all four types, assuming both are random.
What matters most is randomness — how unpredictable each part of the password is to an attacker. A long but predictable pattern (e.g., a movie quote) is much weaker than a shorter but truly random string.
The research backs this up in an unexpected way: the study found that mnemonic passwords using lowercase letters only provide similar strength to those using the full 7-bit visible ASCII set. The extra symbols, it turns out, don’t add much entropy when the base pattern is already strong. That’s counterintuitive — and it contradicts the “you need special characters” advice that’s been drilled into everyone for decades.
Concrete targets:
- At least 75 bits of entropy (that’s the floor for “strong”).
- Over 100 bits is ideal for high-value accounts.
- For passwords (text, typed character by character), aim for 12–16 characters minimum.
- For passphrases (multiple words, with or without spaces), 30 characters minimum.
A random 14-character password like T#4qL9z!pW2@cNx hits about 84 bits. A 16-word mnemonic at 80 bits is in the same ballpark. The difference is that you can recall the sentence, while the random string requires a password manager.
The Path Forward for Memorable Security
If you build one, use the recipe that came out on top: ASCII characters, every second word, first character only. Assume ~5 bits per word in the original sentence. Avoid famous quotes, personal details, and predictable structures. And run the result through zxcvbn before you commit to it.
People Also Ask
What is a mnemonic password generator?
It’s a tool that turns a sentence you can remember into a complex-looking password by applying a transformation rule — typically grabbing the first letter of every second word and optionally adding symbols. The result looks random to attackers but stays memorable because you only need to recall the original sentence.
How much entropy does a mnemonic password actually have?
A 16-word sentence gives roughly 80 bits of entropy using the best transformation rule — comparable to a 6-word Diceware passphrase. But that’s an upper bound estimate, not a guarantee, because natural language is highly patterned and your sentence’s actual unpredictability is hard to measure.
What’s the difference between mnemonic passwords and Diceware passphrases?
Diceware uses random words from a known list, giving you a guaranteed 12.9 bits per word, while mnemonic sentences give roughly 5 bits per word due to grammatical structure. Diceware’s entropy is knowable and guaranteed; your sentence’s entropy is at best an estimate, and mnemonic passwords fare worse against online attacks.
How do mnemonic passwords compare to what people actually use?
They’re a huge upgrade. Leaked datasets like Yahoo! passwords had a min-entropy of about 6.5 bits, while mnemonic passwords from the study hit between 11.4 and 12.8 bits — roughly double. That means they’re far more resistant to cracking than common garbage like ‘Password123!’ or ‘qwerty2024’.
When do mnemonic passwords fail completely?
They fail if your sentence comes from a famous quote, movie, song lyric, or well-known speech — attackers include those in their dictionaries, making them trivially crackable even after transformation. Personal biases also hurt: attackers know people pick from a small set of topics like pets, family, jobs, and hobbies.
