12-Character Passwords
Twelve characters with the full symbol set is the shortest length still defensible in 2026. It is above every common minimum, comfortably beyond offline brute force against a slow hash, and short enough to type by hand when a password manager is not available — which is the only real argument for stopping here rather than going longer.
The Entropy of This Setting
Drawing 12 characters from an alphabet of 92 — upper case, lower case, digits and punctuation — gives about 78 bits of entropy. At a trillion guesses a second, which is what a well-funded attacker with GPUs achieves against a fast hash, exhausting half that space takes 4,789 years.
| Length | Entropy | Time to crack at 10¹² guesses/sec |
|---|---|---|
| 8 characters | 52 bits | 38 minutes |
| 12 characters | 78 bits | 4,789 years |
| 16 characters | 104 bits | 3.2 × 10^11 years |
| 20 characters | 130 bits | 2.2 × 10^19 years |
| 24 characters | 157 bits | 2.9 × 10^27 years |
| 32 characters | 209 bits | 1.3 × 10^43 years |
Symbols Add Less Than People Think
Moving from 62 characters to 92 adds about 0.6 bits per character. On a 16-character password that is roughly 9 bits — real, but worth less than adding two more letters. Symbols matter mainly because they defeat dictionary and pattern attacks, not because of the arithmetic.
Some systems still reject particular symbols, or silently truncate at a length you cannot see. If a password fails to work after being accepted, that is usually why.
Generated in Your Browser
The generator uses crypto.getRandomValues(), the platform's cryptographically secure
random source, not Math.random() — which is fast, predictable and unfit for this purpose.
Nothing is transmitted and nothing is logged; the value exists only in your tab.
Where a Password This Length Still Fails
Length defends against brute force and nothing else. At 12 characters the remaining attacks are the ones that ignore strength entirely:
- Credential stuffing. A password reused on a breached site is tried everywhere, and its
- Phishing. A password typed into a convincing fake is handed over whatever it contains.
- Malware. A keylogger reads a 12-character password exactly as fast as a 4-character one.
Where Passwords Actually Leak
| Cause | Share of breaches | Mitigation |
|---|---|---|
| Reuse after another site's breach | Largest single cause | A unique password per site |
| Phishing | Large | A password manager (it will not autofill on the wrong domain) |
| Weak or guessable | Moderate | Length and real randomness |
| Server-side breach | Moderate | Not yours to control; 2FA limits the damage |
Storing Them, If You Are the Server
``javascript
// Argon2id is the current recommendation
const hash = await argon2.hash(password, {
type: argon2.argon2id,
memoryCost: 19456, // 19 MiB
timeCost: 2,
parallelism: 1,
});
`
Never store plaintext, never store a fast hash, never encrypt reversibly. Salt is per
password and generated by the library. Peppering — a secret added outside the database —
helps only if the pepper lives somewhere the database dump does not.
Rules Worth Dropping
NIST SP 800-63B now advises against several long-standing practices:
Forced periodic rotation. It producesPassword1,Password2` and nothing else.- Composition rules. They shrink the search space by making the pattern predictable.
- Password hints and security questions. Both are usually easier to guess than the
- Truncating length. Accept at least 64 characters; a passphrase should fit.