Skip to the main content

Passwords

Checking password exposure without sharing a password unnecessarily

By TraceErase · First published · Last updated

On this page

The short answer

You can check whether a password has appeared in known breaches without sending the complete password to anyone. A k-anonymity check turns the password into a hash in your browser and sends only the first five characters of that hash, so the service cannot tell which password you meant. A "found" result means stop using that password; a "not found" result does not mean it is strong or safe.

Why typing a password into a random site is a risk

A site that asks for your password to "check" it can see what you type. It might store it, log it, pass it to someone else or simply be badly secured, and you cannot tell from the page. A real password you have typed into the wrong place should be treated as exposed.

A well-designed check avoids this by never receiving the password at all. The design is called k-anonymity, and Have I Been Pwned (HIBP), a free breach-lookup service, uses it for its Pwned Passwords service.

How a k-anonymity check works

  1. Your browser turns the password into a SHA-1 hash, a fixed-length fingerprint, on your own device.
  2. It sends only the first five characters of that hash to the Pwned Passwords range service. The password and the full hash are never sent.
  3. The service replies with the ends (suffixes) of every known hash that starts with those five characters, each with a count of how many times it appeared in breached data. HIBP says a typical reply contains about 800 suffixes.
  4. Your browser compares the rest of your hash with that list itself. The service never learns whether there was a match.

Because many different passwords share the same first five characters, the service cannot tell which one you were checking. HIBP also documents an option that pads each reply to between 800 and 1,000 entries, so that someone watching encrypted traffic cannot infer from the size of the reply which prefix you asked for. The padding entries have a count of zero and are ignored. HIBP says the range service needs no API key and you can inspect the requests in your browser's developer tools to see what is sent.

What TraceErase does

The TraceErase password check works this way: the password is hashed with SHA-1 in your browser, only the first five characters of the hash are sent straight from your browser to the Pwned Passwords range service, run by Have I Been Pwned, with padding requested, and your browser checks the reply. The complete password is never sent to TraceErase or to Have I Been Pwned. The request does not pass through TraceErase and, like any web request, it shows that service your internet address. TraceErase does not store or see the password.

Reading the result

  • Found: the password appears in known breached data, with a count of how often. HIBP says a password that has been breached should not be used, and that if you have used it anywhere you should change it. Changing it on one site is not enough if you reused it: change it everywhere you used it.
  • Not found: HIBP's own wording is that this does not necessarily mean it is a good password, only that it is not in the data loaded into its service.

The check cannot tell you how strong a password is, which accounts it is used on, whether anyone has already used it against you, or whether it has appeared in a breach HIBP does not hold. It also cannot tell you whether your email address has been breached: that is a separate question, covered in What to do after your email appears in a data breach.

What the NCSC recommends instead of checking and hoping

Checking is a way to catch a bad password. The National Cyber Security Centre (NCSC) recommends habits that make a bad password much less likely in the first place.

  • Use three random words. The NCSC says a password made of three random words is strong enough for most purposes and easier to remember, so each account can have its own. Its example is "applenemobiro". Avoid common passwords, significant dates, family and pet names, and simple character swaps such as "o" for zero, which criminals know. Do not use that example: it is public.
  • Use a password manager. It can generate and store a unique password for every account, and autofill only fills credentials on the right website, which helps protect against phishing. The NCSC says saving passwords in the browser or operating system on your own devices is acceptable, and that you should never save them on shared or public computers.
  • Turn on 2-step verification (2SV). The NCSC says it keeps criminals out of your accounts even if they know your password. Start with email, then banking, social media and online shopping.
  • Use a passkey where one is offered. The NCSC recommends passkeys as your first choice of sign-in where available; they are unlocked with your device's fingerprint, face check or passcode.

A worked example

What this guide does not cover

  • A password check only reflects the data the service holds. "Not found" does not mean a password is safe, strong or unbreached elsewhere.
  • A k-anonymity check protects the password in transit. It cannot protect you if your device has malware, if the page you are on is not what it claims to be, or if you type the password into a site that does not use the technique.
  • You can verify claims about what is sent by watching your browser's network requests, but you should only trust a checker whose method is explained and whose requests match.
  • TraceErase is not a password manager and does not hold your passwords. It does not provide antivirus or device security or monitor you continuously. If you turn on scheduled breach checks on a paid plan, it can tell you about a newly listed breach for your account email.
  • Breach information for your account email is a plan feature that depends on the breach-data provider; the free password check does not.

Use the check in your browser

A free TraceErase account includes the browser-side password check described above. The complete password is never sent to TraceErase or to Have I Been Pwned; only the first five characters of a one-way hash of it are sent, from your browser, to a Have I Been Pwned service. Creating an account does not start a purchase, and the paid plan is separate and optional.

Create your account

Sources

Official pages this guide relies on, and the day each was last read. Guidance changes, so check the source for anything that matters to you.

How this guide is reviewed

Written by TraceErase from the sources above. Legal review: not needed for this guide. Security and technical guidance drawn from NCSC and Have I Been Pwned pages. It makes no statement about legal rights, deadlines or complaints.

General information, not legal advice.

Questions

Is it safe to check a password I currently use?

With a k-anonymity check that hashes in your browser and sends only five characters of the hash, the complete password is not sent. You should still only use a checker whose method you understand. If a password is found, stop using it.

What does "found" mean?

The password appears in known breached data, so criminals may have it on a list to try. Stop using it everywhere and replace it with a strong, unique one, starting with email and banking.

What does "not found" mean?

Only that it is not in the data the service holds. It does not mean the password is strong or that it has never been exposed.

Is three random words really enough?

The NCSC says it is strong enough for most purposes and easier to remember. Pair it with 2-step verification, and use a different set of words for each important account or let a password manager generate them.