A Diceware passphrase is a sequence of random words — like border-acorn-blizzard-anvil — that is both easy to remember and hard to guess. Because the words are chosen at random from a known list, the strength is exactly quantifiable, unlike a password you invent yourself. This generator uses the browser’s cryptographic random source and an embedded word list, so nothing ever leaves your device.
How it works
The generator follows the standard Diceware model with one important correctness detail:
- For each word, it draws a uniformly random index into the list using
crypto.getRandomValues. - To avoid modulo bias, it uses rejection sampling: it discards any raw 32-bit value above the largest exact multiple of the list size, then takes the remainder. This keeps every word equally likely.
- Entropy is
wordCount × log2(listSize)bits, reported live so you can see the strength of the exact passphrase you generated. - Optional formatting — separator, capitalisation, and a single appended digit — is applied without reducing the word-selection entropy.
Tips and notes
- Entropy comes from the random word choice, not the formatting. Capitalising the first letter of every word adds almost nothing, because an attacker knows the pattern; it only helps satisfy a site’s character-class rule.
- Resist the urge to swap a “boring” word for one you like — manual editing breaks the randomness guarantee and lowers entropy.
- A passphrase is only as safe as where you store it. Generate it offline here, then save it in a reputable password manager rather than a note file.
- The bits-per-word figure scales with the list: a longer embedded list raises entropy per word. The tool always shows the real number for the list it shipped with, so the strength you see is honest.