ProtemKey

Passphrase generator

Random words from the EFF large wordlist, picked by your browser's cryptographic random number generator. Six words give 77.5 bits: about 2.2 × 1023 equally likely passphrases.

Your passphrase appears here (the generator needs JavaScript).
Separator

Why it is strong

77.5 bitsVery strong
  • 6 words, each one of 7,77677.5 bits

7,776⁶ ≈ 2.2 × 10²³ equally likely passphrases.

Online, rate-limitedabout 1017 years100 guesses per hour
Offline, slow hash350 billion years10,000 guesses per second
Offline, fast hash35 thousand years100 billion guesses per second

Average time to guess (half of all possibilities). The rates are illustrative assumptions, not measurements.

How this generator works

Each word is one of the 7,776 words on the EFF large wordlist, chosen independently and uniformly at random. “Uniformly” is the part that matters: the browser's crypto.getRandomValues supplies random 32-bit numbers, and the generator uses rejection sampling to turn them into a choice between 7,776 words with no word even slightly more likely than another. The methodology page publishes chi-square tests over 7,776,000 word picks.

Because every word is equally likely, the strength can be computed exactly instead of estimated: log2(7,776) = 12.925 bits per word. An attacker who knows you used this list, this many words and these settings still has to search the whole space. That is the point of a passphrase: its security does not depend on the method being secret.

What the options do to the strength

OptionEffect on entropyWhy
Words+12.9 bits per wordEach word multiplies the possibilities by 7,776.
Separator+0It is the same between every word, so an attacker tries the few common choices.
Capitalize Each Word+0Fixed rule: nothing for an attacker to guess. Useful where a site insists on capitals.
One word in CAPITALS+log2(words): 2.6 bits for 6 wordsWhich word is capitalized is a random choice.
Random capitals per word+1 bit per wordEach word is capitalized or not, at random.
Add a digit+3.3 + log2(words) bitsA random digit (1 of 10) on a random word.
Add a symbol+3 + log2(words) bitsA random symbol from !#$%&*?@ (1 of 8) on a random word.

The extras are there for sites with composition rules. An extra word adds more than any of them: 12.9 bits against at most 6 for a digit on one of six words.

How many words?

Passphrases of random words from the EFF large wordlist (7,776 words, 12.9 bits each). Average time to guess at the site's illustrative rates.
WordsBitsPossible phrasesSlow hash, 104/sFast hash, 1011/s
338.84.7 × 1011272 days2.4 seconds
451.73.66 × 10155.8 thousand years5.1 hours
564.62.84 × 101945 million years4.5 years
677.52.21 × 1023350 billion years35 thousand years
790.51.72 × 1027about 1015 years272 million years
8103.41.34 × 1031about 1019 years2.1 trillion years
9116.31.04 × 1035about 1023 yearsabout 1016 years
10129.28.08 × 1038about 1027 yearsabout 1020 years

The EFF recommends six words for most uses. Four or five can be enough where a service limits guessing (a login that throttles attempts), and more makes sense for a secret that protects other secrets, such as a password manager's master password. See how many words a passphrase needs for the reasoning.

Is the count exact even with no separator? Yes. The EFF list is prefix-free: no word is the beginning of another, so a run of words joined together splits back into exactly one sequence. Its four hyphenated words (drop-down, felt-tip, t-shirt, yo-yo) cannot be confused with two separate words either, because “drop”, “felt”, “t” and “yo” are not on the list. The build checks this.