Passphrase Generator (Diceware)
Build a memorable passphrase from the EFF long wordlist — with the exact entropy, not a colour-coded guess.
Download saves these passphrases to your disk as a plain-text file.
Press ? for shortcuts · Words are drawn in this tab and kept in memory only — nothing is stored, nothing is sent.
This page loads no third-party code — no ads, no trackers, no analytics. Verify in your Network tab.
Do it offline:$ shuf -n 6 eff_large_wordlist.txt | cut -f2 | paste -sd- -
How to use it
- Pick 3 to 20 words — six is the default and the EFF's own recommendation.
- Set the separator (up to 8 characters), the capitalization, and an optional random digit or symbol.
- Press Generate (⌘/Ctrl + Enter): the readout prints exact bits, the formula behind them, and the character span.
- Copy one row, Copy all, or Download .txt — one phrase per line, up to 1,000.
- Rolling physical dice? Switch to Dice mode, enter five 1–6 rolls, and collect the words yourself.
Choose how many words you want and generate. Each word is one uniform draw from the 7,776-word EFF long list — log₂(7,776) ≈ 12.925 bits — so six words is 77.5 bits and about 47 characters to type. Separator, capitalization and an optional random character are yours to set, each priced honestly. Rolling real dice? Dice mode looks up your rolls.
How it works
Each word is an independent uniform draw from 7,776 candidates, so n words describe 7,776^n equally likely phrases and the entropy is n × log₂(7,776) = n × 12.924812… bits. Six words: 6 × log₂(7,776) = 77.5 bits, one of 2.2 × 10^23 phrases, about 3,500 years of average offline search at 10¹² guesses per second. The formula holds only because a machine drew the words.
7,776 is 6^5 — five dice, five digits, one word. Entries are ordered by roll, so the index is Σ (dᵏ − 1) · 6^(5−k): 11111 lands on abacus, 34521 on important, 66666 on zoom. Dice mode is that lookup and nothing more, so it needs no trust in this page.
Structure is not entropy. Capitalization rewrites words that were already drawn: 0 bits. A separator is fixed text, known to anyone who knows the recipe: 0 bits. An extra character counts only when it is drawn — one of ten adds log₂(10) = 3.32 bits, while a digit you always type yourself adds nothing.
Examples
6 words · space separator · count = 1mayday starfish gratitude cheating imitation unfairThe default shape: 77.5 bits, with no note fired because nothing was traded away. This row is 51 characters; across 3-to-9-letter words a six-word space-joined phrase spans 23 to 59 characters and averages about 47. Draws are fresh every time, so the row is illustrative — shape-verified against the live engine, never byte-compared.
4 words · hyphens · Capitalized · random digitTwenty-Backspace-Surround-Evident4Four words carry 51.7 bits and the drawn trailing digit adds log₂(10) = 3.32, for 55.0 bits — about five hours of average offline search, so four words suit throwaway accounts. Hyphens and initial capitals add zero, and three notes say so.
Dice mode · rolls 3-4-5-2-1importantRolls 34521 select index 3,390 — (3−1)·6⁴ + (4−1)·6³ + (5−1)·6² + (2−1)·6 + 0 — and that index is important. The reverse holds: word 3,390 is roll 34521. Hyphens, spaces and commas between rolls are ignored.
Every example on this page is executed against the same engine that powers the tool, on every build.
Gotchas worth knowing
A hyphen separator meets four hyphenated words
drop-down, felt-tip, t-shirt and yo-yo are on the list, so hyphen-joined output can be read back with the wrong word boundaries. The bits do not change; your ability to retype it does.
Repeated words are correct, not a bug
Draws are independent, so one word can turn up twice — at six words, about one time in 519. De-duplicating would shrink the candidate set and lower the entropy, so nothing does.
Some fields will not take 47 characters
Six EFF words with separators run 23 to 59 characters, and legacy forms still cap at 16 or strip spaces on submit. Each batch's character span is printed beside the output — check before you commit.
Dice on the table vs the browser here
Five physical dice give a word you can verify by hand against the published list. Generate mode asks the browser's secure random source for the same draws — faster, but you trust the machine.
An empty separator loses the boundaries
Running the words together is allowed and costs no bits, yet correcthorsebatterystaple cannot be split back without guessing. It is a readability trade, flagged as one.
Common errors
Separator contains a line break or tab — those characters would split one passphrase across several lines in the downloaded file. Remove them to continue.- A pasted separator brought a newline or tab along. Nothing is stripped silently; the range marks the first one.
Word count must be a whole number between 3 and 20.- Under three words is not worth generating, over twenty not worth typing. Edited share links are checked like typed input, too.
Count must be a whole number between 1 and 1,000.- Bulk stops at a thousand; past the cap the engine declines rather than resizing your batch.
Enter exactly five digits from 1 to 6 — one per die.- Dice mode wants five rolls. A 0, a 7 or a letter is refused with the position marked; spaces, hyphens and commas between the rolls are fine.
FAQ
How many words does a passphrase need?
Count the bits: three words is 38.8, five is 64.6, six is 77.5, and every further word adds 12.925. At 10¹² guesses per second an offline attacker averages under a second on three words, about five months on five, and roughly 3,500 years on six — hence the six-word default.
Is Diceware still a good idea?
Its security comes from list size and word count, not novelty. What changed is the list: the EFF's 2016 long list keeps 7,776 entries while dropping punctuation, rare spellings and hard-to-type strings, so the bits per word are identical and the phrases are easier to type.
Can I keep the spaces in a passphrase field?
Usually, and it reads best — but some forms strip or reject spaces on submit, turning a phrase you can retype into one you cannot. Switch to a hyphen or an underscore there; the entropy is identical.
Keyboard shortcuts
- ⌘/Ctrl + Enter
- Generate again with the settings untouched.
- ⌘/Ctrl + S
- Write the batch to a .txt file — it downloads rather than saving the page.
- ⌘/Ctrl + C
- Copy the output when focus is in the tool and nothing is selected.
- ⌘/Ctrl + Shift + C
- Copy the output even with a selection active.
- ? or ⌘/Ctrl + /
- Open the shortcut help overlay.