User Rating 0.0
Total Usage 0 times
Category Security
Click "Generate" to create a secure passphrase
Entropy: — bits
5
60s
History
No passphrases generated yet
Is this tool helpful?

Your feedback helps us improve.

About

A weak password cracks in seconds. A short random one cracks in hours. The difference between a breached account and a secure one often comes down to entropy - measured in bits. This tool generates passphrases using a curated 2048-word list and the Web Crypto API (crypto.getRandomValues), producing output with calculable entropy of E = n × log2(W) bits, where n is word count and W is list size. A 4-word passphrase yields ~44 bits; a 6-word one reaches ~66 bits - sufficient to resist brute-force attacks at 1012 guesses per second for centuries.

This tool approximates real-world security assuming the attacker knows the word list and method (Kerckhoffs's principle). Actual resistance depends on your threat model. The generator runs entirely client-side. No passphrase is transmitted or stored beyond your browser's LocalStorage. The clipboard auto-clears after 60 seconds. Pro Tip: never reuse a passphrase across services, and pair it with a hardware token or TOTP for critical accounts.

passphrase generator diceware password security crypto random entropy calculator secure password NIST password

Formulas

The fundamental entropy of a passphrase drawn from a uniformly random word list is calculated as:

E = n × log2(W)

Where E = total entropy in bits, n = number of words selected, W = size of the word list (2048 in this tool, so log2(2048) = 11 bits/word).

When augmentations are applied (digit insertion, symbol insertion, capitalization transforms), the effective entropy increases per element:

Etotal = n × log2(W) + nd × log2(10) + ns × log2(S)

Where nd = count of random digits appended, ns = count of random symbols inserted, and S = size of the symbol alphabet (this tool uses 8 common symbols: !@#$%&*?).

The estimated crack time assumes an attacker performing an offline brute-force attack:

T = 2E2 × G

Where T = expected time in seconds (average case is half the keyspace), and G = guesses per second (1012 for a well-funded adversary with GPU clusters). Rejection sampling eliminates modulo bias: generate a random 32-bit integer, discard values W × floor(232 ÷ W) and retry.

Reference Data

Word CountEntropy (bits)Possible CombinationsTime to Crack @ 1012 guesses/sNIST Strength Rating
333 bits8.59 × 109< 1 secondWeak
444 bits1.76 × 1013~4.9 hoursFair
555 bits3.60 × 1016~1.14 yearsStrong
666 bits7.38 × 1019~2,340 yearsVery Strong
777 bits1.51 × 1023~4.79 × 106 yearsExcellent
888 bits3.09 × 1026~9.81 × 109 yearsExcellent
999 bits6.34 × 1029~2.01 × 1013 yearsMaximum
10110 bits1.30 × 1033~4.11 × 1016 yearsMaximum
Assumptions: 2048-word list, words only, no augmentation. Adding digits/symbols per word increases entropy per element.
Common Password Comparison
8-char random (a-z)37.6 bits2.09 × 1011~3.5 minutesWeak
8-char mixed case+digits47.6 bits2.18 × 1014~2.5 daysFair
12-char full ASCII78.8 bits3.01 × 1023~9.54 × 106 yearsExcellent
4-word passphrase + digit47.3 bits1.76 × 1014~2 daysFair
6-word passphrase + symbol71 bits2.36 × 1021~7.5 × 104 yearsVery Strong

Frequently Asked Questions

Entropy determines security, not complexity. A 4-word passphrase from a 2048-word list has ~44 bits of entropy. An 8-character password using lowercase only has ~37.6 bits. The passphrase is both stronger and dramatically easier to memorize. NIST SP 800-63B explicitly recommends longer passphrases over short complex passwords because users can remember them without writing them down - which itself is a security risk.
No. Security is calculated assuming the attacker knows everything about your method except the specific random choices made (Kerckhoffs's principle). The entropy formula E = n × log₂(2048) already assumes the attacker has the exact word list. The security comes from the combinatorial explosion: 2048⁶ ≈ 7.38 × 10¹⁹ possible 6-word passphrases.
When mapping a 32-bit random integer (range 0 to 2³² − 1) to a word list of size W, naive modulo (rand % W) creates bias because 2³² is not evenly divisible by W. This tool uses rejection sampling: it calculates the largest multiple of W that fits within 2³² and discards any random value at or above that threshold, retrying until a value falls within the unbiased range.
For casual web accounts: ≥44 bits (4 words). For email and financial accounts: ≥55 bits (5 words). For master passwords (password managers): ≥66 bits (6 words). For cryptographic key derivation or high-security contexts: ≥77 bits (7+ words). Adding a random digit per word adds ~3.32 bits each; a symbol from an 8-character set adds ~3 bits each.
No. Math.random() uses a PRNG (pseudorandom number generator) seeded from a predictable state. An attacker who knows the algorithm and can observe or guess the seed can reproduce the entire output sequence. The Web Crypto API (crypto.getRandomValues) draws from the operating system's CSPRNG (Cryptographically Secure PRNG), which is seeded from hardware entropy sources (thermal noise, interrupt timing, etc.) and is computationally infeasible to predict.
Clipboard contents persist until overwritten and can be read by other applications or browser extensions with clipboard access. Auto-clearing after 60 seconds limits the exposure window. This matches the behavior of password managers like KeePass and 1Password. The timeout is configurable in this tool's settings - though reducing it below 30 seconds is recommended for high-security environments.
Only if the capitalization pattern is random. If you always capitalize the first letter, the attacker knows this and gains zero additional entropy. This tool optionally applies random capitalization transforms (all-lower, all-upper, title-case, or random per-character), which adds up to log₂(4) ≈ 2 bits per word when the transform is randomly selected from 4 options.