What makes a password strong
Password strength is most usefully measured in bits of entropy — the base-2 logarithm of the number of guesses an attacker would need on average to find your password. An 8-character password chosen from 95 printable ASCII characters has about log₂(95⁸) ≈ 52 bits of entropy. Modern offline attackers can compute roughly 100 billion password guesses per second against weakly-hashed leaked databases — so a 52-bit password can be brute-forced in around 12 hours of compute.
entropy_bits = length × log₂(charset_size)To resist offline attack against fast hashes (MD5, SHA-1, NTLM), 80 bits is the practical minimum and 100+ bits is comfortable. For online attacks (rate-limited login forms), 50–60 bits is plenty.
Length matters most
| Length | Lowercase only | Mixed case + digits + symbols | Random words (Diceware) |
|---|---|---|---|
| 8 chars | 38 bits | 52 bits | — |
| 12 chars | 56 bits | 79 bits | — |
| 16 chars | 75 bits | 105 bits | — |
| 20 chars | 94 bits | 131 bits | — |
| 4 words | — | — | 52 bits |
| 6 words | — | — | 78 bits |
| 8 words | — | — | 104 bits |
Length compounds entropy exponentially while character-class expansion adds only a constant factor. A 20-character lowercase password is stronger than a 12-character "complex" password.
Random vs human-chosen
Studies of leaked password databases consistently find that humans cannot produce random-looking strings. password, 123456, and qwerty together account for over 1% of every leak. Even "complex" human passwords cluster heavily — capital letters appear at the start, digits appear at the end, and symbols are usually ! or @.
A generator that pulls characters uniformly at random from a defined alphabet is far stronger per character than anything a person constructs from memory. The trade-off is memorability — which is why random passwords should live in a password manager.
Passphrases vs random strings
A passphrase made of random words (Diceware-style) achieves similar entropy to a random string but is much easier to type and remember. With a 7,776-word list, each word adds log₂(7776) ≈ 12.9 bits of entropy.
- 4 words: ~52 bits — adequate for low-value sites.
- 6 words: ~78 bits — good general-purpose strength.
- 8 words: ~104 bits — very strong, suitable for master passwords.
The strength comes from the words being truly random. "correct horse battery staple" from the famous XKCD comic uses words chosen randomly — picking memorable phrases from your favorite song or book destroys most of the entropy.
Character-class rules — useful or not?
Mandatory rules like "must include an uppercase letter, a digit, and a symbol" are largely security theater. They marginally raise the per-character entropy but encourage predictable substitutions like Password1!. Modern guidance from NIST (Special Publication 800-63B) actually removes the requirement for composition rules and instead emphasizes length and screening against breach databases.
Where to store passwords
- Password manager (recommended): 1Password, Bitwarden, KeePassXC, Apple Keychain. One strong master password protects everything; each site gets a unique random password.
- Browser-built-in: better than reusing weak passwords, but tied to the browser and harder to share across devices.
- Paper: acceptable for a master password kept in a physically secure location (safe, sealed envelope at home).
- Memory: realistically only for 2–3 high-stakes passwords (master password, full-disk encryption). Use passphrases of 6+ random words.
Two-factor authentication still matters
Even a perfect password can be stolen by a phishing site, keylogger, or breach. A second factor — preferably a hardware key (YubiKey, Titan) or an authenticator app, not SMS — blocks the majority of account takeovers. Enable 2FA on every account that supports it, especially email and financial accounts.