Random Password Generator
🔒 Drawn with crypto.getRandomValues, 100% in your browser. Nothing is sent anywhere — refresh the page and the password is gone. Store it in a password manager.
Copied to clipboard.
Estimate — offline attack at 10 billion guesses/sec; with the per-class requirement on, entropy is the exact log₂ of the rejection-sampled space.
How this estimate works
Entropy = length × log₂(pool size) when every character is a uniform random pick from the selected pool. With "require at least one of each class" on, the generator draws uniform strings until one contains every selected class, so the result is uniform over exactly that set — and the reported entropy is log₂ of its exact count, computed by inclusion-exclusion. Crack time = 2entropy ÷ 10,000,000,000 guesses per second.
Quick reference (all four classes, requirement on)
- 8 characters — ≈50.9 bits. Too short for anything important.
- 12 characters — ≈77.4 bits. A solid minimum for important accounts.
- 16 characters — ≈103.6 bits, about 49 trillion years in this model. Comfortable overkill.
- 8 lowercase-only characters — ≈37.6 bits, about 21 seconds. Length without variety is not enough.
The model assumes a blind offline brute-force attack. A password that has already leaked, or one you reuse across sites, is compromised regardless of its entropy — check new passwords with the strength checker and keep them in a password manager.
FAQ
How random is the generated password?
Each character comes from crypto.getRandomValues with rejection sampling (no
modulo bias), entirely on your device. There is no server, no analytics, no network request.
What does "require one of each class" change about the entropy?
Without it, entropy is length × log₂(pool size). With it on, the generator rejection-samples until every selected class appears, and the reported entropy is the exact log₂ of that constrained space (inclusion-exclusion). The gap is small: 16 characters from all four classes is 103.9 bits unconstrained vs 103.6 bits constrained.
How long should my password be?
12 characters from all four classes (≈77.4 bits) is a solid minimum; 16 (≈103.6 bits) is comfortably beyond offline brute force in this model. Prefer a password manager over memorizing long strings — and prefer a passphrase when you must remember it.
What does "exclude ambiguous characters" remove?
Exactly six characters: 0, O, 1, l, I and |. The full pool drops from 90 to 84 characters, costing only about 1.7 bits on a 16-character password — readability is nearly free.
Is this estimate a guarantee?
No — it is an estimate from a fixed, documented model. Real attackers may be weaker (they don't know your method) or stronger (phishing, malware, leaked databases). Treat it as a transparent benchmark, not a promise.
Does this site see my password?
No. Generation and all math happen inside this page. Refreshing destroys the password, so copy it into a password manager before you leave.