Passphrase Generator

Random words from a 7,776-word Diceware-style list — EFF's modern English list by default, plus the classic Diceware, Beale and Russian wordlists — picked with your browser's cryptographic random generator. Nothing is transmitted or stored — click to copy.

Options
Wordlist
Custom wordlistoptional, local only

{{ customError }}

Word count
Separator
Letter case

Drawing uniformly from the {{ currentWordlist.name }}of {{wordlistSize.toLocaleString()}} words.

{{wordlistError}}

Passphrase
{{ passphrase }}
{{ strength.label }} {{ entropy.toFixed(0) }} bits of entropy
Quantity
Batch {{batch.length}}
{{i+1}} {{p}}
How it works

Diceware-style tools turn random selections into a sequence of plain words that are easier for humans to read, write down and re-type correctly than raw hex or Base64. This generator can draw from four 7,776-word lists: EFF's modern English list (the default), the original Diceware list published by Arnold Reinhold, Alan Beale's alternate revision of that list, and a Russian translation. All four are the same size, so every word carries the same ~12.9 bits of entropy regardless of which one you pick — the difference is only in how easy the words are to read, type and remember. It is not a BIP-39 wallet-seed implementation.

Wordlist source: {{ currentWordlist.sourceLabel }}.

Wordlist source: your own upload ({{ customFileName }}) — read locally, never transmitted, and not a vetted, collision-checked list the way the built-in ones are.

It draws {{ wordCount }} words independently and uniformly at random from the list using your browser's cryptographically secure random number generator, then joins them with your chosen separator. Because each word is picked independently, the total entropy is simply the word count multiplied by the log2 of the wordlist size.

This is a general-purpose memorable-password generator, not a cryptocurrency wallet tool or a BIP-39 implementation. Do not use a phrase generated here as a wallet recovery or seed phrase — wallet seed phrases must come from the wallet itself and use a checksum-verified, standardized wordlist to be valid and safe.

A custom wordlist is used exactly like the built-in ones: it's deduplicated case-insensitively and blank lines are dropped before anything is drawn from it, and the entropy meter always reflects the size of that final pool — including after toggling the ambiguous-word filter — rather than the raw line count of the file you uploaded. Unlike the built-in lists, though, a custom upload is not a checked, collision-free wordlist — it's whatever you gave it.

Generation runs entirely in your browser. Nothing you generate is transmitted or stored.