Password Entropy: Why "Tr0ub4dor&3" Loses to Four Random Words
How entropy is actually calculated, why substitution tricks add almost nothing, what crack-time estimates assume, and where generated passwords and passphrases each belong.
Entropy is about the process, not the string
A password’s strength is the number of equally-likely alternatives the generation process could have produced, measured in bits: entropy = length × log₂(alphabet size) — *if and only if* every character was chosen uniformly at random. A human "randomly" typing produces nothing close to uniform: dictionary words, keyboard walks and birthdays collapse the real search space by orders of magnitude. Attackers do not brute-force character-by-character; they brute-force *the way people think*.
This is why Tr0ub4dor&3 is weak despite its symbols: it is one dictionary word with predictable substitutions (0 for o, 4 for a) plus a trailing symbol-digit — a pattern every cracking tool tries early. Four genuinely random common words (correct horse battery staple style) draw from ~2⁷⁷ possibilities and beat it by thirty-plus bits.
What crack-time estimates really assume
A "3 centuries to crack" estimate assumes a specific attacker: offline attack against a leaked hash, at some guesses-per-second rate. The rate varies by a factor of a million depending on how the site hashed your password — GPU rigs try hundreds of billions of MD5 guesses per second but only tens of thousands against a properly tuned bcrypt or Argon2. You cannot control the site’s hashing; you can control being far enough into the search space that even the fast case is hopeless. Aim for 80+ bits; 100+ for anything guarding money or email.
Generated strings vs passphrases: both, in different places
- Random 20+ character strings for everything stored in a password manager — maximum entropy per character, and you never type them.
- Diceware-style passphrases (5+ random words) for the few secrets you must type or memorize: the manager’s master password, disk encryption, your OS login.
- Never reuse either. Credential-stuffing from old breaches compromises more accounts than cracking does; uniqueness beats strength.
- Length beats complexity rules: a 16-character lowercase string out-entropies an 8-character string using all four character classes.