Password Security and Entropy
Password strength has a precise mathematical definition, and most of the advice built around it — forced complexity, scheduled expiry — has been formally withdrawn. Here is what the evidence actually supports.
Entropy: what password strength actually measures
Password strength is not a colour on a meter. It is a number of bits, and it has a precise definition: the base-2 logarithm of the number of possible passwords an attacker would have to consider.
entropy (bits) = length x log2(size of character set)| Character set | Size | Bits per character |
|---|---|---|
| Digits only | 10 | 3.32 |
| Lowercase letters | 26 | 4.70 |
| Letters, both cases | 52 | 5.70 |
| Alphanumeric | 62 | 5.95 |
| Alphanumeric + symbols | 95 | 6.55 |
So a random 12-character password from the full printable set has 12 × 6.55 = 78.6 bits of entropy.
The formula only holds for genuinely random passwords. Password123! is twelve characters from a 95-character set, but it is not random — it is a dictionary word with predictable substitutions and appears in every cracking wordlist. Its real entropy is close to zero. Entropy measures the attacker’s uncertainty, not the string’s appearance.
How long cracking actually takes
Attack speed depends entirely on how the password was stored. This is the single most important variable and it is controlled by the service, not the user.
| Storage | Guesses/second (8×RTX 4090) |
|---|---|
| MD5 | ~500 billion |
| SHA-256 | ~100 billion |
| bcrypt (cost 12) | ~50 thousand |
| Argon2id (64 MB, t=3) | ~5 thousand |
Seven orders of magnitude separate the top and bottom rows. Against SHA-256 at 100 billion guesses per second:
| Password | Entropy | Time to exhaust |
|---|---|---|
| 8 chars, lowercase | 37.6 bits | 2 seconds |
| 8 chars, mixed + symbols | 52.4 bits | ~1 hour |
| 12 chars, mixed + symbols | 78.7 bits | ~150,000 years |
| 16 chars, mixed + symbols | 105 bits | Longer than the universe has existed |
| 4-word passphrase (EFF list) | 51.7 bits | ~40 minutes |
| 6-word passphrase | 77.5 bits | ~65,000 years |
Two conclusions. Length dominates everything — each extra character multiplies the search space. And the practical threshold is around 75–80 bits, which means 12 random characters or a 6-word passphrase.
Generate either in the password generator, which shows the entropy calculation.
How passwords are really broken
Brute force is the least common method, because it is the least efficient. Real attacks exploit human predictability.
- Credential stuffing. Attackers take username and password pairs from one breach and try them everywhere else. Because roughly two thirds of people reuse passwords, success rates of 0.1–2% across millions of attempts are extremely profitable. This is the number one cause of account takeover.
- Dictionary and rule-based attacks. Cracking tools take wordlists and apply the substitutions humans actually make: capitalise the first letter, append a year, replace a with @, add an exclamation mark.
P@ssw0rd2026!falls in milliseconds. - Phishing. No password strength helps if the user types it into a convincing fake page. This is why phishing-resistant factors matter more than password complexity.
- Password spraying. Rather than many passwords against one account, try a handful of very common passwords against many accounts. This evades per-account lockouts entirely.
- Keyloggers and infostealer malware. Strength is irrelevant when the plaintext is captured at the keyboard.
What NIST actually recommends
NIST Special Publication 800-63B, revised in 2024, overturned decades of received wisdom. The current guidance:
Do
- Require a minimum of 8 characters; allow at least 64.
- Accept all printable ASCII, spaces and Unicode.
- Check new passwords against lists of known-breached passwords and reject matches.
- Allow paste, so password managers work.
- Store with a salted, memory-hard function.
- Offer multi-factor authentication.
Do not
- Do not impose composition rules. Requiring an uppercase, a digit and a symbol produces
Password1!across an entire organisation. It reduces real entropy by making choices predictable. - Do not force periodic expiry. Rotation without evidence of compromise makes users pick weaker, incrementing passwords (
Spring2026→Summer2026). Change on evidence of compromise only. - Do not use password hints or security questions. Your mother’s maiden name is on the public record.
- Do not truncate. Silently cutting a password to 15 characters wastes the user’s effort and hides a bug.
Passphrases and the XKCD argument
The famous XKCD 936 comic argues that correct horse battery staple is both stronger and more memorable than Tr0ub4dor&3. The maths holds up, with one condition.
The condition is that the words must be chosen randomly, not by a human. The EFF publishes a 7,776-word list designed for dice selection, giving log2(7776) = 12.9 bits per word:
- 4 words = 51.7 bits — adequate with a slow hash, weak without
- 5 words = 64.6 bits — good
- 6 words = 77.5 bits — strong, the recommended default
- 7 words = 90.4 bits — strong enough for a master password
A phrase you invent yourself has far less entropy than the word count suggests, because human word choice is heavily biased and grammatical structure constrains what follows what. Song lyrics and quotations have effectively zero entropy — they are in the wordlists.
Passphrases are the right choice for the handful of passwords you must type from memory: your device login, your password manager master password, your disk encryption key. Everything else should be a long random string you never see.
Password managers, MFA and passkeys
Use a password manager
It is the single highest-impact change available. It generates unique high-entropy passwords for every site, eliminating credential stuffing entirely, and it refuses to autofill on a phishing domain — a phishing defence humans do not have.
Bitwarden, 1Password, KeePassXC and the browser-integrated managers are all credible. The only genuinely wrong answer is reusing passwords.
Multi-factor authentication, in order of strength
- Hardware security keys (FIDO2/WebAuthn). Phishing-resistant by design: the key checks the origin cryptographically and will not respond to a lookalike domain.
- Passkeys. The same WebAuthn cryptography with the private key held by your device or password manager. No shared secret exists to steal, and there is nothing to phish.
- Authenticator apps (TOTP). Good, but the six-digit code can be relayed by a real-time phishing proxy.
- SMS codes. Better than nothing. Vulnerable to SIM swapping and to SS7 interception, and NIST has discouraged it since 2016.
Passkeys are the direction of travel
A passkey is a key pair: the private key never leaves your device, the public key goes to the site. There is no shared secret to breach, no password to reuse, and no code to phish. Apple, Google and Microsoft all shipped support in 2022–2023 and adoption is now widespread. Where a site offers passkeys, use them.
Practical checklist
For individuals
- Install a password manager and let it generate everything.
- Use a 6-word passphrase for the master password.
- Turn on MFA everywhere, preferring passkeys or a hardware key.
- Check your addresses on Have I Been Pwned and change anything that appears.
- Never reuse a password, ever, on any site.
For developers
- Hash with Argon2id at 64 MB memory, 3 iterations, parallelism 4.
- Never invent your own hashing scheme.
- Check new passwords against a breached-password list.
- Rate-limit login attempts by IP and by account.
- Use constant-time comparison for tokens and signatures.
- Support WebAuthn and passkeys.
- Never log passwords, even at debug level, and never email them.
- Return an identical error for “unknown user” and “wrong password” so the endpoint does not enumerate accounts.
Frequently Asked Questions
How long should a password be?
At least 12 random characters, or a 6-word random passphrase. Length matters far more than complexity: each extra character multiplies the search space.
What is password entropy?
A measure in bits of how unpredictable a password is: length multiplied by log2 of the character set size. It only applies to genuinely random passwords — human-chosen ones have far less than the formula suggests.
Should I change my passwords regularly?
No. NIST explicitly recommends against scheduled expiry, because it drives users toward weaker incrementing passwords. Change on evidence of compromise.
Are password managers safe?
Yes, and far safer than the alternative. The vault is encrypted with your master password and the provider cannot read it. The risk of one strong master password is much lower than the certainty of password reuse without one.
Is a passphrase better than a password?
For anything you must memorise, yes — provided the words are chosen randomly. Six random words give about 77 bits, comparable to a 12-character random string and much easier to type.
Does adding a symbol make my password strong?
Marginally. Password1! satisfies most composition rules and is cracked instantly because it is a predictable pattern. Randomness and length are what matter.
What are passkeys?
A public-key replacement for passwords. Your device holds a private key that never leaves it, so there is no shared secret to breach and nothing to phish. Use them wherever they are offered.
Sources & further reading
- NIST SP 800-63B — the authoritative modern guidance on passwords and authenticators
- EFF Dice-Generated Passphrases — the 7,776-word list and the method behind it
- Have I Been Pwned — check whether your credentials appear in a known breach
- XKCD 936: Password Strength — the comic that popularised the passphrase argument
- FIDO Alliance: Passkeys — how phishing-resistant authentication works