b2KIT

Password Exposure Checker

Check if a password has been exposed in data breaches using k-anonymity hash prefix matching via HIBP.

Tested tool guide Tested browser tools Checked August 16, 2026

What Password Exposure Checker does and how it behaves

This tool checks whether a password has already surfaced in a known data breach. It hashes the password locally with SHA-1, then sends only the first five characters of that hash to the Have I Been Pwned Pwned Passwords API instead of the password itself. HIBP returns every hash suffix sharing that prefix along with how many times each was seen across breach dumps, and the tool matches the remaining characters locally in the browser. People are often surprised that a network request happens at all, since the k-anonymity design exists specifically so the full password, and the full hash, never leave the browser intact.

How the result is produced

1

K-anonymity range query

The password is hashed with SHA-1 entirely in the browser. Only the first five hex characters of that 40-character hash are sent to HIBP's range endpoint (for example /range/5BAA6); the full hash, and the password itself, never leave the browser. This mirrors the k-anonymity model HIBP publishes for Pwned Passwords, built so the service never receives enough of the hash to reconstruct which password was checked.

2

Local suffix match and count

HIBP's response is a plain-text list of every hash suffix sharing the submitted prefix, each paired with a count of how many times it appeared in the breach corpora it indexes. The tool scans that list locally for the remaining 35 hash characters. A match reports the occurrence count; no match means the password isn't in HIBP's current dataset, not that no breach exists.

Good uses

  • checking a password before reusing it on a brand-new account or service
  • auditing an old or shared password after receiving a breach notification email
  • vetting a team or admin password before rolling it out to a group

Limits and checks

  • a clean or not-found result means the password isn't in HIBP's corpus, not that it is strong or unique - a predictable password can still return clean if no breach dump happened to include it
  • this check still requires one outbound request to HIBP's range API per lookup, so it is privacy-preserving by design but not offline, and it depends on that service being reachable
  • newly breached credentials take time to be ingested into HIBP's dataset, so a password compromised very recently may not show up as pwned yet even though it is already circulating

Common questions

Does this tool send my password to a server?

No. The password is hashed with SHA-1 in your browser, and only the first five characters of that hash are sent to HIBP - never the password, and never the full hash. The k-anonymity range API is built so HIBP cannot determine which exact password or hash you were checking from that partial prefix alone.

Why does a password I just invented show up as pwned?

Because Pwned Passwords is built from strings seen across breach dumps, not from account-password pairs tied to you. If your string matches a common pattern someone else used elsewhere, such as a word plus digits, it will register as seen even though you personally never reused it.

References and verification

The behavioral notes were checked against the browser implementation. Standards and primary references below define the relevant format, formula, or platform behavior.

Related Tools