Passphrase Forge

Passphrase Forge builds random passphrases entirely in your browser using its cryptographic random generator over a fixed 7,776-word list (about 12.9 bits per word), so a six-word phrase carries about 77.5 bits of entropy. Nothing you generate here is ever sent over the network.

Private by construction: every passphrase is generated on your device with crypto.getRandomValues and never transmitted, stored, or logged by this site. The only network request this page makes is downloading the public wordlist itself.

Generate a passphrase

Loading wordlist…

Dice mode (fully offline)

Prefer randomness you can see? Roll five ordinary six-sided dice per word and type the digits below — for example 31452 for one word, five digits per word. The lookup happens on this page; with the downloaded list you can do it with no computer at all.

Spaces are optional; every full group of five digits selects one word.

Download the wordlist

The list is public and versioned; keeping it secret adds nothing. Entropy comes only from which words the dice or the random generator pick.

  • — 7,776 words plus selection metadata.
  • — one 11111 word line per entry, generated in your browser for printing and offline dice rolls.

Methodology: why phonetic distinctness

Passphrases get read aloud: over the phone to a colleague, across the room to family, into support calls. Widely used diceware lists (such as the EFF long list) are tuned for typing — unique prefixes and edit distance — but they do not exclude words that sound identical. When a phrase is dictated, sound-alike pairs turn into transcription errors and lockouts.

This list is built for the read-aloud channel. Every candidate word was kept only if, in this build's retained CMUdict pronunciations, none of its pronunciation variants (stress ignored) is shared with any other spelling in the pronunciation index. Sound-alike pairs like night/knight or pair/pare are excluded entirely — both members are dropped, so no phrase depends on hearing the difference.

How the list was selected

  • Exactly 7,776 words (65), so five dice rolls select one word and each word contributes log2(7776) ≈ 12.92 bits.
  • 4–8 letters, lowercase a–z only, and 1–3 syllables in the primary retained pronunciation — short enough to type, short enough to say.
  • Drawn from this build's most common ranking bands (a build-specific ordering, not a universal usage claim), ranked by tier and frequency proxy before the cutoff.
  • Words on this build's offensive-word list, flagged abbreviations, apostrophes, and exact-pronunciation collisions are excluded.

Limitations

  • Pronunciation facts come from the retained CMUdict variants in this data release (v1/2026.07-lexical.6), which primarily reflect North American English; sound-alike pairs in other accents may not be caught.
  • The entropy figures assume the attacker knows the wordlist and your settings and must search the word choices; they say nothing about reused or partially known phrases.
  • Randomness comes from your browser's crypto.getRandomValues; dice mode is only as random as your dice and rolling.
  • The offensive-word screen is list-based and imperfect; regenerate if a combination reads poorly.
  • This page generates passphrases; it does not store them. Keep the result in a password manager or written down somewhere safe, and use a different passphrase for every account.