Passphrase Generator
Real diceware passphrases from the authentic EFF wordlists -- 7,776 or 1,296 words, true entropy math, QR export and bulk generation.
What this tool does
Builds a passphrase from randomly chosen dictionary
words — the "diceware" method — using the real,
publicly-published EFF Large wordlist (7,776 words,
the modern diceware standard) or the EFF Short wordlist
(1,296 words, shorter words that are faster to type on a phone).
Every word is chosen with crypto.getRandomValues and
unbiased rejection sampling, the same approach this site uses for
every other generator — not Math.random(), and not a
biased modulo shortcut.
Why word count matters more than word list tricks
Entropy here is simply words × log2(list size). The
original diceware method (rolling five six-sided dice per word
against a 7,776-word list) gives ~12.925 bits per word
— six words is already ~77.5 bits, comparable to a
fully random 13-character password. A shorter, smaller word list
doesn't ruin this, but it does cost real bits per word: the
1,296-word EFF Short list gives ~10.34 bits per word,
so matching 77.5 bits needs about 8 words instead of 6. A toy list of
only a few dozen words — which is all some "diceware-style"
generators actually use — gives under 6 bits per word, meaning even
ten words from it can fall short of 60 bits. List size is not
cosmetic; it is the entire entropy budget per word.
Standard vs. Short: which wordlist to use
The Standard list (EFF Large, 7,776 words) is the modern diceware reference list and the default here — fewer words needed for the same entropy, at the cost of some longer/rarer words appearing occasionally. The Short/Memorable list (EFF Short, 1,296 words) sticks to shorter, more common words, which trades some entropy-per-word for faster typing, especially on a phone keyboard — plan on roughly two extra words to reach the same strength as the Standard list.
Formatting options and what actually adds entropy
Separator choice (hyphen, dot, underscore, space, none, or your own), and capitalizing every word or shouting the whole thing in uppercase, make a passphrase easier to read but are deterministic — they don't add any entropy, because an attacker already knows the rule. Random-per-word capitalization does add a real bit per word, since each word's case is now an independent coin flip. Appending random digits and inserting a random symbol at a random position both add their own real, counted bits on top of the word entropy — useful for sites that insist on a digit or symbol regardless of overall strength.
Avoiding repeated words
By default, the same word is never chosen twice in a row — mostly a readability nicety on the huge Standard/Short lists (the odds of a repeat are already tiny), but genuinely relevant on a small custom word list, where it meaningfully reduces accidental repetition without materially changing the entropy math.
Custom wordlist mode
Paste your own list (one word per line, or comma/space separated) to use a word list specific to a language, theme, or memory aid. Entries are deduplicated automatically. A custom list under a couple hundred words will have noticeably less entropy per word than the EFF lists — the live entropy figure always reflects whichever list is actually active, so there's no guessing.
Crack-time estimates across four scenarios
The same passphrase can be centuries away from being cracked in one scenario and seconds away in another, so a single number would be misleading. Estimates are shown for an online rate-limited login (~100 guesses/hour), an online unthrottled login (~10/sec), an offline attack against a slow hash like bcrypt (~10,000/sec), and an offline attack against a fast unsalted hash like raw MD5 (~10 billion/sec).
Privacy
Every word, digit and symbol is drawn from
crypto.getRandomValues entirely in your browser using
unbiased rejection sampling against the active list length. Nothing
is sent to a server. Session history exists only in this tab's
memory and disappears the moment you reload or leave the page.