Skip to content
Y
YAS.SH
Security

Password Strength: Entropy, Crack Times & What 'Secure' Means

What password entropy actually measures, why 'Tr0ub4dor&3' beats 'correct horse battery staple' in some threat models, and how to evaluate a password in seconds.

yas-team6 min readpasswordsentropysecurity
Password Strength: Entropy, Crack Times & What 'Secure' Means
Featured imagePassword Strength: Entropy, Crack Times & What 'Secure' Means

"Use a strong password" is advice nobody defines. Strong against what? A bored coworker? A phishing site? An offline GPU crack of a leaked database? The answer changes what "strong" means — and that's exactly what a good password evaluator models.

The Password Strength tool computes entropy, estimates crack times for fast and slow hashes, and flags predictable patterns. Here's the model behind it.

Entropy: the actual math

Entropy measures the uncertainty of a password in bits: length × log₂(charset size). A 12-character password from a 95-character keyboard set has:

12 × log₂(95) ≈ 12 × 6.57 ≈ 78.8 bits

Every bit doubles the attacker's work. 40 bits is crackable in hours on a GPU; 60 bits is years for a fast hash; 80+ bits is effectively untouchable offline — and no online attacker will ever get there.

But charset math assumes random characters. Real passwords aren't random, which is why raw length-based formulas overestimate. That's the second half of the model.

Patterns: the penalty box

Pattern-aware crackers (hashcat, John, and every professional tool) don't brute-force characters — they combine masks, dictionaries, and mangling rules: dictionary words, a→4 / o→0 substitutions, keyboard runs (qwerty, 1qaz2wsx), repeated characters, dates, and sequences. The evaluator detects the common ones:

  • Tr0ub4dor&3 — dictionary word + substitutions + digit/symbol decoration. Looks strong, cracks in seconds against a leaked hash database.
  • qwerty123456 — keyboard run + sequence. Cracked instantly.
  • correct horse battery staple — four common words. ~44 bits with a known wordlist (still decent!) — but only if the words aren't on the top-10,000 list.

Crack time: two numbers, two threats

The tool reports two estimates:

  • Fast hash (1e10 guesses/sec): the "leaked database" threat. If your password falls to this in less than a day, change it.
  • bcrypt/argon2 (100 guesses/sec): the "properly hashed service" threat. This is the realistic one for a well-run platform — and why 20 characters of entropy beats 40 characters of hope.

What the score means

The tool returns a 0–4 score plus feedback. Treat it like a linter, not a verdict:

  • Score 0–1: change immediately; it's on common lists or trivial patterns.
  • Score 2: fine for throwaway accounts, weak for email/banking.
  • Score 3: solid for most services — this is the practical target.
  • Score 4: strong anywhere; use this for password managers and primary email.

The practical recipe

  1. Use a password manager; generate 16+ random characters.
  2. For accounts you type often: a 4–5 word passphrase with uncommon words.
  3. Never reuse: one breach reuses itself across every account.
  4. Turn on 2FA for anything the password protects. A great password with no 2FA is weaker than a mediocre password with 2FA.
curl -X POST https://yas.sh/api/v1/tools/password-strength -d '{"input":"Tr0ub4dor&3"}'

The tool won't make you choose better passwords — but it'll tell you the truth about the ones you have, and that's the first step. Strong passwords are a habit, not a character count.

Frequently asked questions

Is a long passphrase better than a short random password?

For most threat models, yes — a 4-word passphrase from a 7,776-word list has ~51 bits of entropy and is easy to type. But it's vulnerable to dictionary attacks if the list is known. Random character strings with 60+ bits are the safest.

What crack speed should I assume?

Depends on the attacker. Online guessing: ~10 attempts/second per account. Offline fast hash (MD5/SHA): billions per second. bcrypt/argon2: hundreds per second. Your password must survive the slowest realistic attack for the service it protects.

Why does 'Tr0ub4dor&3' score lower than people think?

Because it's a dictionary word with predictable substitutions (a→4, o→0) — pattern-aware crackers try those transformations automatically. Length and randomness beat clever-looking substitutions.

Was this helpful? Share
🍪 Cookies & privacy. yas.sh uses only essential cookies to keep you signed in and remember your preferences. We do not run third-party trackers. See our cookie policy and privacy policy.
Settings