Has your password been leaked?
A breach check tells you whether a password already appears in leaked data. This one uses k-anonymity: your password is hashed in the browser and only the first five characters of that hash are sent, so the service never learns which password you looked up.
Your password is hashed with SHA-1 in your browser. Only the first five characters of that hash are sent — about 800 hashes come back and the match is made on your device. The service on the other end cannot tell which password you checked, or even that you checked one.
How this checks your password without learning it
Typing a real password into a website is normally terrible advice, so it is worth explaining exactly why this case is different. The technique is called k-anonymity, and it works like this:
- Your browser hashes the password with SHA-1, producing a 40-character fingerprint. Nothing has left your device yet.
- Only the first five characters of that fingerprint are sent to the breach database — for example
5BAA6. - The database returns every hash beginning with those five characters, typically around 800 of them, with no idea which one you care about.
- Your browser searches that list locally for the rest of your hash. The answer never travels anywhere.
The service therefore learns one of roughly 800 possibilities, which is no information at all. The request also carries an Add-Padding header, which pads the response with dummy records so that even the size of the reply gives nothing away.
What a match actually tells you
A match means this exact string of characters appears in breach data that has been made public. It does not mean your account was breached, and it does not mean somebody is targeting you. Most matches happen because a password is simply popular — the string password appears in the corpus over 52 million times, almost all of them belonging to other people.
The practical consequence is the same either way. Once a password is in the corpus, it is in the wordlists, and any attacker trying to break into an account will try it in the first fraction of a second. Popularity is what makes it dangerous, not who leaked it.
What a clean result does not tell you
This is where people misread the tool, so it is worth being blunt: not being breached is not the same as being strong. These two questions are completely independent.
| Password | In breach data? | Hard to guess? |
|---|---|---|
| password | Yes, 52 million times | No |
| Qwerty!2029 | Probably not | No — a keyboard run plus a year |
| n9lRS-1AW7b+3(t/ | No | Yes — 103 bits of entropy |
The middle row is the trap. A clean breach result on a weak password creates false confidence. Run anything that passes this check through the pattern-aware strength checker as well — that one measures guessability rather than exposure.
What to do if your password was found
- Do not edit it. Adding a digit, a symbol, or a capital to a breached password gains you almost nothing, because those are the default transformation rules in every cracking toolkit. Replace it outright.
- Start with your email account. Email is the reset channel for everything else you own, which makes it the highest-value target and the first thing to fix.
- Change it everywhere you reused it. This is the step people skip, and it is the one that matters most. A breached password is only dangerous because of credential stuffing — attackers replaying the same pair across hundreds of sites.
- Turn on two-factor authentication where the account offers it. A correct password fails without the second factor, which buys you time even when a password does leak.
- Stop the pattern from recurring. If you can remember a password, it is probably guessable, and if you reuse it, one breach becomes ten. Use a generator, or a system that recreates each password on demand so a different one exists for every site without you tracking any of them.
Why breach checking is not enough on its own
Checking against known breaches is reactive by definition: it can only tell you about leaks that have already happened and been published. Breaches often go undetected for months and unpublished for longer, so a clean result today says nothing about a dump sitting on a forum that nobody has processed yet.
The durable fix is structural rather than reactive. If every account has its own password, a breach anywhere costs you exactly one account and no others — and the question of whether any single password has leaked stops being frightening.
Breach check FAQ
- Is it safe to type my password into a breach checker?
- Into one that uses k-anonymity, yes. Your password is hashed with SHA-1 in your browser and only the first five characters of that hash are sent. Roughly 800 hashes come back and the comparison happens on your device, so the service cannot tell which password you checked.
- What does it mean if my password was found?
- It means that exact string appears somewhere in publicly known breach data, so it is already in the wordlists attackers use. It does not mean your specific account was breached. Either way the password is burned and should be replaced everywhere you used it.
- My password was not found. Does that mean it is strong?
- No, and this is the most important caveat. A clean result only means this exact string has not surfaced in a known breach. A password like Qwerty!2029 may well be unbreached and still fall to a cracking tool in seconds, because it follows an obvious pattern.
- Can I just add a number to a breached password?
- No. Cracking tools apply exactly those transformations by default: appending digits, adding a symbol at the end, capitalising the first letter, swapping a for 4. A breached password with a 1 on the end is still a breached password. Replace it outright.
- Where does the breach data come from?
- The Pwned Passwords corpus maintained by Have I Been Pwned, which aggregates passwords exposed in publicly disclosed breaches and contains well over half a billion distinct passwords. It stores only hashes and counts, never usernames or email addresses.
- Should I check the passwords I use right now?
- Yes, and this is the one case where checking a live password is worth it, because the k-anonymity model means you are not disclosing it. Start with your email password, then banking, then anything holding payment details.
More free tools
Every tool runs in your browser without an account. The generators, strength checker, and entropy calculator keep inputs local. The breach checker sends only a five-character hash prefix to Have I Been Pwned.
Password generator
A password generator creates a random string that no person would think of and no wordlist contains.
Passphrase generator
A passphrase is several random words joined together, such as "trout-canyon-mellow-drift".
PIN generator
A PIN generator picks digits at random instead of letting you reach for a birthday.
Strength checker
A password strength checker estimates how many guesses an attacker needs before reaching your password.
Entropy calculator
Password entropy measures how many guesses an attacker needs, expressed in bits.
Make one account easier today.
Start with the password you keep reusing or the bank card that still shares a PIN. MoolKey is free, and you do not need to move everything at once.
