Developers & Technical · Guide · Developer Utilities
How to check for password breaches
Learn how k-anonymity breach checking works without sending your password. Free, online guide covers HIBP usage, email checks, and breach response steps.
If your password showed up in a known breach, attackers already have it. Checking against breach databases is a 10-second habit that prevents credential-stuffing takeovers — the single most common account-compromise vector. This guide covers how breach checks actually work (k-anonymity, no plaintext sent), what services like HaveIBeenPwned do, when to check passwords vs emails, what to do when a breach is found, and why checking doesn’t replace using a password manager.
Advertisement
What a breach database is
When a service gets hacked, attackers often publish (or sell) the stolen user data. Sites like HaveIBeenPwned (HIBP) collect these leaks and make them searchable by email or password hash.
HIBP currently holds 10+ billion leaked records from thousands of breaches — LinkedIn, Adobe, Yahoo, Dropbox, and many more. If your password shows up there, it’s available to anyone running credential-stuffing attacks.
K-anonymity — how checking stays safe
You might hesitate to paste a password into any website, even one that claims to check it. Good news: you don’t have to send it.
HIBP’s Pwned Passwords API uses k-anonymity:
1. Your browser computes SHA-1 of your password locally.
2. Send only the first 5 hex characters of the hash.
3. HIBP returns every hash that starts with those 5 characters (usually a few hundred).
4. Your browser checks locally whether your full hash matches any of them.
HIBP never sees your full hash, let alone your password. Even if the response is intercepted, an attacker sees only a prefix — not enough to identify you.
Any tool that uses k-anonymity is safe to use with real passwords. Tools that claim to check but require you to paste the full password to a server should be avoided.
Password-level vs email-level checks
Two different questions, two different answers.
Password check: has this specific password ever appeared in any breach? Done via the k-anonymity API. Answers “yes, 1,234,567 times” or “no”.
Email check: has this email appeared in any breach? Lookup by email. Tells you which services you had accounts on that got breached, plus what data was exposed (passwords, phone, address, etc.).
Run both. Password check tells you if a password is reused and exposed. Email check tells you which accounts need specific action.
What the password check tells you
A hit means the password has been seen in breaches, possibly used by other people on other services. It doesn’t necessarily mean your account was breached — common passwords (password123, qwerty) get millions of hits just because they’re common.
Any hit = don’t use that password. Credential-stuffing attacks try known-exposed passwords against millions of email/password combos. You don’t want to be one of them.
Zero hits means the password isn’t in any known breach. Doesn’t mean it’s strong — just unexposed. Strength and breach exposure are separate concerns.
What to do if your password is breached
Change it immediately on the affected service.
Change it on every service where you reused it — this is the mainline attack path.
Enable 2FA / MFA on any service that supports it. Breached password alone won’t grant access if you have a second factor.
Check the email-breach list to understand what specific data was exposed (phone, DoB, security answers) — you may need to rotate more than the password.
When email shows up in a breach
Different exposure classes have different severities:
Email + password (plaintext or weak hash): highest urgency. Change everywhere.
Email + password hash (bcrypt/argon2): lower urgency. Strong hashes are hard to crack, but still rotate on the affected service.
Email + metadata (name, address, phone): lower urgency for account security, higher for phishing risk. Attackers can craft tailored phishing emails using leaked info.
Email only: low urgency. You might get spam, but account access isn’t directly at risk.
Why a password manager makes this easier
Breach checking and password management solve overlapping problems. A password manager:
Generates unique passwords per site → breach of one service can’t cascade.
Many (1Password, Bitwarden, Dashlane) integrate HIBP-style breach checks automatically. You get alerted when a stored password appears in a new leak.
Stores them securely so you don’t need to memorize or reuse.
Breach checking alone isn’t enough. It tells you when to rotate; a password manager tells you how to rotate without reusing.
Automating regular checks
One-time checks are a start. Ongoing monitoring is better.
HIBP notifications: subscribe your email and get notified when new breaches appear involving that email.
1Password Watchtower, Bitwarden Reports, Dashlane Dark Web Monitoring: run continuously against your stored credentials.
Browser integrations: Chrome, Firefox, and Safari all have built-in breach warnings. Don’t disable them.
Common mistakes
Pasting passwords into a non-k-anonymity site. You just gave them your password. Check the tool’s method first.
Only checking once. New breaches happen monthly. Subscribe to notifications.
Ignoring zero-hit results. Zero exposure doesn’t mean the password is strong. Low entropy passwords get cracked even without a breach.
Rotating only the breached service. If you reused the password, every site is at risk.
Treating MFA as optional. MFA is the strongest control; turn it on for every account that supports it, especially email and banking.
Forgetting security questions. “Mother’s maiden name” is often leaked alongside the password. Treat answers as passwords — unique and unguessable.
Run the numbers
Check whether a password is in known breaches with the password breach checker. Pair with the password strength checker to ensure the replacement is strong, and the password generator to create a unique replacement.
Use these while you read
Tools that pair with this guide
- Password Breach CheckerCheck if a password has appeared in a known data breach. Uses HaveIBeenPwned k-anonymity — your password never leaves the browser.Developer Utilities
- Password Strength CheckerCheck how strong a password is — entropy bits, estimated time to crack, and what to improve. Private, offline.Developer Utilities
- Password GeneratorGenerate strong random passwords. Choose length, symbols, numbers, and avoid lookalikes. Runs locally.Developer Utilities
- JSON FormatterPaste JSON to beautify, validate, and minify with clear error messages, all in your browser without sign-up—free instant tool for developers.Developer Utilities
Advertisement
Continue reading
- Developers & TechnicalGitHub Actions Without Being a DevOps ExpertMaster GitHub Actions for the 90% use case with this practical playbook. Build, test, and deploy instantly using free common templates and no-sign-up guides.
- Developers & TechnicalBest Practices for Building Developer ToolsLearn CI/CD, IDE, and documentation standards for paid dev tools instantly. Implement best practices for what companies actually buy online.
- Developers & TechnicalHow to Contribute to Open Source Developer ToolsFind beginner-friendly OSS projects and ship your first pull request with confidence. Free, instant playbook to avoid mistakes and scale contributions.
- Developers & TechnicalHow to Design CLI Tools Developers LoveFree guide to build CLI tools developers actually love: composability, sensible defaults, human errors, trust by default, predictability, fast feedback.
- Developers & TechnicalPassword Security Guide with Real Entropy ExamplesCalculate real password entropy with 2026 attacker speeds. Free guide to diceware passphrases, password managers, and 2FA based on actual attack vectors.
- Developers & TechnicalJSON Format Rules Every Developer Should KnowFree guide to strict JSON spec rules, JSON5 vs JSONC, top 10 parser errors, Schema validation, streaming huge files, and security: prototype pollution.