← Blog

February 3, 2026

Why we hash your email instead of storing it

When you search an identifier, we don't store it, log it, or keep a reversible copy anywhere. Before it's compared against anything, it's run through HMAC-SHA256 with a key that only our servers hold. What ends up in the database is that hash — a fixed-length string that can't be turned back into your original email.

Why HMAC instead of a plain hash

A plain hash (like SHA-256 on its own) is still crackable at scale for common inputs — email addresses aren't random, so an attacker with the hashed database could precompute hashes for billions of common addresses and match them. Keying the hash with HMAC means an attacker would also need our server-side key, which never leaves the backend, to run that same attack.

Key rotation

That key isn't fixed forever. We support multiple key versions, so if a key ever needed to be rotated, existing hashed records stay valid — a lookup checks your search against every key version we've used, not just the current one. That means rotating keys doesn't break search history or force a re-hash of the entire database.