Check Whether a Password Has Been Leaked in a Data Breach

Checks a password against hundreds of millions of leaked credentials without ever sending the password itself, and measures its real strength with pattern, dictionary and entropy analysis.

Nothing is measured until you press the button. The password itself never leaves this page: The strength model runs in your browser, and the breach lookup sends only the first five characters of its SHA-1 hash. How k-anonymity works

How it works

Type or paste the password

Nothing is measured while you type. The field is local to the page.

Press Check this password

The strength model runs in your browser and the breach lookup sends only the first five characters of a SHA-1 hash.

Read the decomposition

See which dictionary words, keyboard walks, repeats and dates an attacker would use, and how long each attack would take.

What this tool checks

3 checks across 1 areas. Each links to its reference page with the test, the risk and the fix.

Full reference

Password security

3 checks

The ones that most often decide the grade:

How password breach and strength checking stays private

Strength analysis runs locally, while the breach lookup uses a partial-hash range so the complete password and complete hash are never sent.

Password length is valuable, but real resistance also depends on predictability. Attackers try leaked passwords, common phrases, names, dates, keyboard walks and repeated patterns before brute-forcing random characters. A long familiar phrase can therefore be weaker than a shorter randomly generated value.

The page analyses patterns in your browser after you press the button. For the breach lookup, it hashes the password with SHA-1 and sends only the first five hexadecimal characters to the Have I Been Pwned range API. The browser receives a large matching range and compares the remaining hash locally, so Scan.now never receives the password or full hash.

Analyse locallyIdentify dictionary terms, repeats, dates and keyboard patterns in the browser.
Query a hash rangeSend only the first five SHA-1 characters for the breach check.
Explain the resultSeparate known breach reuse from estimated guessing resistance.

Password result components

Breach status and strength answer different questions, and either one can require a password change.

MeasureWhat it asksHow to respond
Breach matchHas this exact password appeared in the public breach corpus?Replace it everywhere it was used, regardless of its apparent complexity.
Pattern analysisCan common words, dates, repeats or keyboard walks explain the password efficiently?Use a generated password or unrelated random words instead of predictable transformations.
Guess estimateHow many attempts might common attack strategies need under stated assumptions?Treat it as comparative guidance, not a promised number of years.
Length and compositionDoes the value provide enough room for unpredictability?Prefer length and randomness over forced symbol substitutions.
Reuse riskCould one exposed password unlock several accounts?Use a unique password for every service through a password manager.

How to read a password check

A password can be unbreached and still predictable, or complex-looking and already widely known.

Unique and hard to guess

No breach match was found and the local model found no efficient common pattern. Store it in a password manager rather than memorising variants.

Found in breach data

Assume attackers include this exact value in credential-stuffing lists. Replace every reused copy immediately.

Predictable pattern

The password was not found in the corpus but common structure lowers its estimated resistance. Generate a less predictable replacement.

Build stronger account protection

  • Generate a different random password for every account and keep it in a reputable password manager.
  • Replace breached and reused passwords first, beginning with email, finance and administrator accounts.
  • Enable phishing-resistant multi-factor authentication or passkeys where available.
  • Change a password after evidence of compromise, not on a routine schedule that encourages weak variations.

What this result does not prove

  • The breach corpus is extensive but cannot contain every private, recent or undisclosed compromise.
  • Guess-time estimates depend on attack rate, hashing method and attacker knowledge, so they are not guarantees.
  • This page cannot tell whether a password is reused elsewhere, stored safely by a service or protected by multi-factor authentication.

Guides for this tool

Background reading written to go with these results.

Frequently asked questions

Is my password sent to your server?

No. Your browser hashes it with SHA-1 and sends only the first five characters of the hash to look up a range of matching suffixes. The password never leaves your device.

What does 'seen 3,861,493 times' mean?

That exact password appears that many times in the Have I Been Pwned corpus of leaked credentials. Attackers try these first.

How is strength calculated?

Locally, in your browser, and only after you press the button. The model finds every dictionary word, name, keyboard walk, repeat, run and date inside the password, prices each one by how early a cracking rig would reach it, then searches for the cheapest way to assemble the whole string from those pieces. That guess count is what the crack times are derived from.

Why does it show how my password breaks apart?

Because the number on its own teaches nothing. Seeing that a password is 'one dictionary word plus a year' explains why adding another symbol will not help, and why a longer passphrase will.