Skip to main content

Password Strength Checker

Check password strength the way NIST SP 800-63B-4 asks for it: guessing difficulty and length, not character variety.

Reviewed by · Last reviewed

Runs 100% in your browser - your data never leaves your device

Scored by guessing difficulty, not by character variety. Nothing is sent anywhere - the analysis runs in this page.

Rate this tool
Be the first to rate

Diagnosing a Password You Already Have

  1. Type or paste the password into the input box. Scoring runs on every keystroke; there is no "analyze" button. The pattern dictionaries load once on your first keystroke, which takes a moment on a slow connection.
  2. Read the strength bar. It maps zxcvbn's 0-4 score: red (Very Weak) through orange, yellow, green, to deep green (Very Strong). A score of 3 or 4 is the target.
  3. Check the length readout against the 15-character NIST single-factor floor. This is the one number worth optimising, because it is the only one an attacker cannot shortcut.
  4. Read the findings. Each names a specific pattern the analyser matched and shows the offending substring: a known word, a keyboard walk, a repeat, a sequence, a date.
  5. Rebuild rather than patch. Appending "!" to a flagged password changes almost nothing - the rule engines attackers use apply that transformation to every candidate for free.

What the Scoring Actually Inspects

The score comes from zxcvbn-ts, a maintained TypeScript port of Dropbox's zxcvbn. It searches for the cheapest way to describe your password: dictionary matches against common passwords, English words, first and last names and Wikipedia titles; l33t-substitution variants of those; keyboard adjacency walks; repeats; ascending and descending sequences; dates. It then multiplies out how many guesses that decomposition costs an attacker and reports the total. What it does not do is award points for containing an uppercase letter. The whole model is "how few guesses is this", which is the question an attacker is answering too.

Why This Changed

An earlier version of this tool scored the way most signup forms still do: a point each for lowercase, uppercase, digits and symbols, plus length tiers, and an entropy readout computed as length * log2(poolSize). That model rates P@ssw0rd1 at 59 bits and praises it for using all four character classes, while the same string sits in every cracking wordlist and falls in seconds. It also emitted the advice "Letters only (add numbers/symbols)" - the exact composition rule NIST SP 800-63B-4 tells verifiers they SHALL NOT impose. Both are gone. Length against the 15-character floor leads, guessing difficulty decides the score, and character-class advice is filtered out of the feedback before it reaches you.

When You Need a Diagnostic, Not a Generator

  • Auditing an inherited password policy at a new job - paste the example passwords in the team documentation and see which ones are objectively weak.
  • Coaching someone who keeps reusing a pet's name and a year, showing them live which part of it the analyser found and how little the year added.
  • Deciding whether a password you memorised years ago is still worth keeping on a low-stakes account or should be retired to the vault.
  • Testing whether a passphrase you built from memorable words reaches the strong band - it usually does, and seeing that is what breaks the "must have a symbol" habit.
  • Showing a product manager why "must contain one special character" does not help, by comparing a 12-character complex password with a 20-character passphrase side by side.
  • Checking a password suggested by someone else, or exported during a vault migration, for obvious red flags before adopting it.

What This Still Cannot Tell You

A high score means no pattern zxcvbn knows about matched. It does not mean the password is unbreached. NIST's blocklist requirement - "verifiers SHALL compare the prospective secret against a blocklist that contains known commonly used, expected, or compromised passwords" - is the check that catches a password with no visible structure that happens to be sitting in a dump, and no purely local tool can perform it against the full corpus. zxcvbn's common-password dictionary covers the well-known entries; the long tail needs haveibeenpwned.com/Passwords, whose range API is k-anonymous but is still a network call, which is why it is not wired in here. Unicode homoglyphs and personal facts an attacker might know about you (your employer, your street, your child's name) are also outside the model unless they happen to be in a dictionary.

What "Strong" Means Here

The bar maps zxcvbn's score, which is derived from the guess estimate: 0 is under 1,000 guesses, 1 under a million, 2 under a hundred million, 3 under ten billion, 4 above that. The crack-time readout translates the same number into wall-clock time under an offline attack against a fast hash at ten billion guesses per second. Against a properly tuned bcrypt or Argon2 the same password lasts far longer, but you rarely get to choose the server's hashing, so the fast figure is the honest one to plan against. For a machine-generated password, the guess estimate and charset entropy converge - there are no patterns to find, so brute force is the cheapest attack and the formula is finally the right one.

Frequently Asked Questions

Why does the checker rate my long passphrase higher than my complex password?

Because that is the correct answer. The score comes from zxcvbn, which estimates how many guesses an attacker needs by decomposing the password into dictionary words, names, keyboard walks, repeats, dates and l33t substitutions. A four-word passphrase is long and its words were selected from a large space; "P@ssw0rd1" is one wordlist entry with three predictable substitutions applied, and hashcat's rule engine applies those substitutions for free. Character variety is not evidence of strength, and NIST SP 800-63B-4 forbids verifiers from requiring it.

Why does the tool never tell me to add a number or a symbol?

Deliberately. SP 800-63B-4 section 3.1.1.2 says verifiers and CSPs "SHALL NOT impose other composition rules (e.g., requiring mixtures of different character types) for passwords". Composition rules push people towards predictable transformations - a capital on the first letter, a digit and a bang at the end - which shrink the search space rather than expanding it. This tool used to emit that advice and no longer does; any zxcvbn feedback string that amounts to "add a character class" is filtered out before display.

What is the 15-character floor the tool measures against?

SP 800-63B-4 requires passwords used as a single-factor authentication mechanism to be a minimum of 15 characters, and a minimum of 8 when the password is one factor among several. The tool shows your length against 15 because a visitor asking "is this password good" is usually looking at an account where the password is the only thing in the way. If the account also has a passkey or a TOTP code, 8 is the applicable floor.

Does typing my password here ever leak it anywhere?

No. Scoring runs in the page with no network side effects: no fetch of your password, no Have I Been Pwned lookup, no telemetry, no analytics event containing password characters. Open the Network tab in DevTools while typing and you will see the zxcvbn dictionary files load once, and then nothing. That also means the tool cannot tell you whether your password has appeared in a breach - see the next question.

Can this tool tell me if my password has been breached?

Not on its own, and that is the one real gap. NIST requires verifiers to compare a prospective password against a blocklist of known compromised passwords, and no local tool can hold the full 14-billion-entry corpus. zxcvbn's dictionaries include a large common-password list, so the obvious breach passwords are caught, but a leaked-but-unusual password will not be. For the real check use haveibeenpwned.com/Passwords, which uses k-anonymity - it receives only the first 5 hex characters of your password's SHA-1 hash, never the password. We do not call it from here because that would turn a local-only tool into a networked one.

What does the "guessing entropy" number mean?

It is log2 of zxcvbn's estimated guess count - how many attempts an attacker who models human password habits would need, expressed in bits. It is not the charset entropy formula (length times log2 of pool size) that most strength meters print. Charset entropy assumes every character was chosen uniformly at random, which is true of a generated password and false of one a person invented; it is what rates "P@ssw0rd1" at 59 bits. If you want charset entropy for a genuinely random string, the password entropy calculator is the right tool.

Why are the crack-time estimates so different from each other?

Because the hash on the other end dominates everything. The tool shows the offline-fast-hash figure, which assumes the attacker stole a database of unsalted SHA-1 or SHA-256 hashes and is testing 10 billion candidates per second on rented GPUs - the LinkedIn 2012 scenario. Against bcrypt or Argon2 tuned properly, the same password survives orders of magnitude longer. You usually cannot know which one a given site uses, so plan for the fast case.

Does a long password automatically mean a strong one?

No, and the tool will show you why. "aaaaaaaaaaaaaaaa" is 16 characters and clears the length floor, but zxcvbn decomposes it into a single repeat and scores it near zero - roughly 8 bits of guessing entropy against the 75 bits its charset formula would claim. The same goes for a memorable quotation or song lyric: length without unpredictability buys nothing, because corpus-derived wordlists already contain the phrase.

How should I use this tool together with a password manager?

Use the manager's generator for anything new - a generated 16-character string has no patterns to find and will score 4 here every time. Use this checker to diagnose the old ones during a vault audit, when the manager flags something as weak without saying why. The findings list names the specific pattern that sank the score, which is what tells you whether to rotate now or at leisure. Do not type your manager's master password here or into anything outside the manager.

Related tools

More Security & Privacy

Support ZeroUtil