Skip to content

Password Strength Checker

Estimate how strong a password is against modern attack budgets — score, crack-time estimates, and concrete suggestions to make it stronger. Powered by zxcvbn, runs entirely in your browser.

⚠

Don't paste real passwords here. The page never sends anything to a server, but the safer habit is to never let a real password leave your password manager. Test patterns and length, not the actual string you use.

Strength: —

Crack time estimates

Online (rate-limited, 100/h) —
Online (no throttling) —
Offline (slow KDF) —
Offline (fast hash) —

"Offline (fast hash)" assumes an attacker with the leaked database running 10¹⁰ (ten billion) guesses/sec against a fast hash; "Slow KDF" assumes 10⁴ guesses/sec, the rate bcrypt, scrypt or Argon2 force. These are zxcvbn's scenarios.

Feedback

Suggestions

  • Type a password above to see suggestions.

Estimates use Dropbox's zxcvbn — pattern-aware, not naive entropy.

Detected patterns

— type to see how zxcvbn breaks down the password —

A password strength checker estimates how resistant a candidate password is to guessing. The widely-used algorithm is zxcvbn, published by Dropbox in 2012 and still the basis for most modern checkers. The tool above runs zxcvbn-style estimation in your browser; nothing about your password leaves your machine.

What strength actually means

Two attacker models matter:

  • Online attack. The attacker submits guesses through a normal login form. The system rate-limits, locks accounts after N failures, or otherwise caps guess rate. A few thousand guesses is the practical ceiling.
  • Offline attack. The attacker has stolen the password database and is grinding hashes locally. With a slow hash like bcrypt and modern hardware, expect ~10⁴–10⁶ guesses per second per GPU; with a fast hash like a single SHA-256, ~10⁹–10¹¹ per second.

A password that resists offline attack also resists online attack. The interesting question is: how many guesses can the password absorb before being found?

zxcvbn returns an estimate of that number — the guesses field — and bins it into five scores 0–4:

ScoreApproximate guesses to crackResists
0< 10³Online attack with no rate limit
1< 10⁶Online attack, throttled
2< 10⁸Unthrottled online attack
3< 10¹⁰Offline attack against a slow hash
4≥ 10¹⁰Offline attack against a slow hash, with margin

For anything important, score 3+ is the bar. For anything where an offline attack is realistic (your password manager master password, full-disk encryption keys), aim for 4.

Why character-class rules don’t work

The legacy rule “uppercase + lowercase + digit + symbol” assumes the attacker uses brute force across the alphabet. Real attackers don’t — they use dictionaries, leaked-password lists, and pattern-aware crackers like Hashcat with rule files. Against those:

  • Password1! satisfies the rule and is in the top 1,000 guesses.
  • correct horse battery staple (XKCD 936) violates the rule (no symbols, no digits) and absorbs ~10¹¹ guesses.

zxcvbn scores by guessability, not by character classes. It looks for:

  • Common passwords from leak corpora
  • Dictionary words (English, names, places, common substitutions like 4 for a)
  • Keyboard patterns (qwerty, 1q2w3e, asdf)
  • Date patterns (1985, 01/15/2024)
  • Repeats (aaaa, abcabc)
  • Sequences (abcdef, 123456)

A password gets credit for the bits of randomness not explained by these patterns. That’s why a 25-character all-lowercase phrase outranks an 8-character symbol stew.

What strength meters can’t see

  • Whether you’ve used this password elsewhere. A unique 16-character password is high-strength against guessing but low-strength if it leaked from a breached site three years ago. The “have I been pwned” check is independent and orthogonal — a password manager that warns about reused or breached passwords is the answer here, not a strength meter.
  • Whether the website’s hashing is good. A 5-bit password is fine if the site enforces 1 attempt per minute and bcrypts the digest. A 30-bit password is bricked the moment the site’s database leaks if they SHA-1 with no salt. Strength is conditional on the system’s defenses, which you can’t see from the client.
  • Out-of-band compromise. A keylogger, a phishing site, a malicious browser extension — strength doesn’t help.

Practical recommendation

The advice that cleanly survives the last decade of cryptanalysis:

  1. Use a password manager. Generate a long random string per site. Don’t memorize most passwords. Use the password generator for one-off generation.
  2. Memorize a small number of high-quality phrases. Your password-manager master, your full-disk encryption, your email account. 4–6 truly random words from a list of ~2,000 common words gives ~44–66 bits — enough.
  3. Add a second factor. A hardware key, an authenticator app — anything that doesn’t rely on the password alone.
  4. Don’t reuse passwords. Reuse converts a breach of any site into a breach of every site you reused at.

What this checker is for

The tool above is useful for two things: gut-checking a candidate phrase before committing to it, and learning what kinds of patterns zxcvbn flags as weak. It is not a substitute for a password manager, a 2FA setup, or breach monitoring.

For other security-related generators, see the API key generator and the hash generator.