Security May 14, 2026 5 min read

What Makes a Password Actually Strong? Testing Methods That Work

Learn how to test password strength using entropy, cracking simulations, and real-world checks. Practical methods developers and webmasters can apply today.

Most password meters lie. They flash green when you add an exclamation mark, then call Password123! "strong" — even though it would fall to a dictionary attack in seconds. If you're building login systems, auditing user accounts, or just trying to harden your own credentials, you need a more honest way to measure password strength.

Here's how to actually test it, what signals matter, and the traps to avoid.

What "strong" really means

Password strength is the estimated effort required to guess or crack a password. It's not about whether a password looks complex — it's about how resistant it is to the attacks real adversaries use:

  • Brute force — trying every possible combination
  • Dictionary attacks — testing known words, names, and phrases
  • Hybrid attacks — common words plus predictable substitutions (p@ssw0rd)
  • Credential stuffing — reusing leaked passwords from other breaches
  • Rule-based cracking — applying patterns hackers know users follow

A password is only strong if it resists all of these — not just one.

The two metrics that actually matter

1. Entropy (in bits)

Entropy measures unpredictability. It's calculated roughly as log2(N^L), where N is the character pool size and L is the length. Rough benchmarks:

  • Below 40 bits — weak, crackable in minutes
  • 40–60 bits — moderate, vulnerable to dedicated attackers
  • 60–80 bits — strong for most purposes
  • 80+ bits — very strong, resistant to offline cracking

The catch: pure entropy math assumes random characters. correcthorsebatterystaple has high real entropy. Summer2024! has high theoretical entropy but near-zero actual entropy because it follows a predictable pattern.

2. Estimated crack time

This translates entropy into something humans understand: how long would a modern GPU rig take to crack this hash? Tools that use the zxcvbn algorithm (originally from Dropbox) factor in dictionaries, keyboard patterns, dates, and common substitutions to give realistic estimates rather than theoretical ones.

How to test password strength properly

  1. Run it through a realistic checker. Use a tool based on zxcvbn or similar pattern-aware logic. A simple character-class meter will mislead you. The AXOX Hub Password Strength Checker evaluates entropy, dictionary matches, and estimated crack time in one pass — and it does the analysis in your browser, so the password never leaves your device.
  2. Check it against breach databases. Even a high-entropy password is worthless if it appears in a known breach. Use the Have I Been Pwned password API (which uses k-anonymity, so you never send the full password) to check if your password's SHA-1 hash prefix matches known leaks.
  3. Test pattern resistance manually. Ask: does it contain a dictionary word? A date? A keyboard walk (qwerty, asdfgh)? A predictable suffix (!, 123, 2024)? If yes to any, downgrade your estimate.
  4. Simulate a cracking attempt. For serious audits, hash the password with bcrypt or Argon2 and run hashcat against it using a wordlist like rockyou.txt combined with common mutation rules. If it falls within an hour on consumer hardware, it's not strong enough for anything important.
  5. Apply the NIST SP 800-63B test. NIST's modern guidance is: at least 8 characters (15+ recommended), no forced complexity rules, no periodic resets, but mandatory checks against breach lists and common passwords.

Examples: what testing actually reveals

  • P@ssw0rd! — Looks complex. Cracked in under a second. Every substitution is in the cracking rules.
  • Tr0ub4dor&3 — The famous XKCD example. ~28 bits of real entropy. Crackable in days.
  • correct horse battery staple — ~44 bits. Strong against most attacks if the words are genuinely random.
  • 9k$Wm2!pQzL8vR — ~85 bits if truly random. Resistant to offline cracking for centuries with current hardware.
  • MyDogIsRex2019 — Looks like a passphrase but uses a name and year. Falls to a targeted attack quickly.

Common mistakes when judging strength

  • Trusting the green bar. Most native browser meters only count character classes. They have no concept of dictionaries or patterns.
  • Confusing length with entropy. aaaaaaaaaaaaaaaa is 16 characters and almost zero entropy.
  • Ignoring reuse. A strong password used on five sites becomes weak the moment one of those sites is breached.
  • Relying on "complexity" rules. Forcing one uppercase, one number, and one symbol pushes users toward predictable patterns like Name123!.
  • Skipping the breach check. Entropy means nothing if your password is already in a wordlist.

Building password testing into your workflow

If you run a site or app with user accounts, don't just measure strength at signup — bake it into your security posture:

  • Integrate zxcvbn or a similar library on your registration and password-change forms
  • Block submissions where the estimated crack time is under, say, one year of offline guessing
  • Check submitted passwords against the Have I Been Pwned API using the k-anonymity range endpoint
  • Show users why their password is weak (pattern detected, found in breach, etc.) rather than just "add a symbol"
  • Audit existing password hashes periodically by running them against current wordlists in a controlled environment

For one-off checks — your own passwords, a credential you're about to hand over, a generated value you want to verify — open the AXOX Hub Password Strength Checker. It runs entirely client-side, shows entropy, estimated crack time, and flags the specific weaknesses (dictionary word, repeated character, keyboard pattern) so you know what to fix.

Try the free tool

Open Tool