PUFFEN
Password Search
Check whether a password or an email address appears in a known breach.
π Password check
π§ Email check
Dataset
Passwords: rot13.no / pwned-uio β a Have I Been Pwned-style
list of ~5.1 billion leaked-password SHA-1 hashes.
Emails: XposedOrNot.
- βsearches served
- βprefixes cached
- βhashes cached
How this works
π Password check β fully private (k-anonymity)
- Your browser hashes the password with SHA-1 locally β a 40-character hex string.
- It sends only the first 5 characters of that hash to this server. Those 5 characters match thousands of different passwords, so the server canβt tell which one is yours.
- The server returns every leaked-hash ending that starts with those 5 characters (fetched from the
pwned-uiodataset and cached in MySQL). - Your browser looks for the rest of your hash in that list and shows the result.
The password and its full hash never leave your browser, and the server never downloads the full ~179 GB dataset β it fetches only the tiny slice each lookup needs, then caches it.
π§ Email check β via XposedOrNot
- The email address is sent to this server, which forwards it to the public XposedOrNot breach API.
- XposedOrNot returns which known breaches include that address, with details (year, records, exposed data types, risk score).
- This server caches the result keyed by a SHA-256 hash of the email β the plaintext address is never stored here.
β οΈ Unlike the password check, email lookups are not anonymous: the address must be sent to XposedOrNot for them to answer. Only check addresses youβre comfortable sharing with that service.