SHA-256 email and phone hasher for Google Customer Match and Meta
Ad platforms match hashed customer lists only when every value is normalised exactly as they expect before hashing. This tool trims and lower-cases emails, formats phones the way each platform asks (E.164 with + for Google, digits only for Meta), optionally applies Google's Gmail dot rule, then SHA-256 hashes each value in your browser and gives you an upload-ready CSV.
Phones are hashed in E.164 with the + (+14155552671).
Used for numbers written without a + country code.
Sample result
Jane@Acme.Example became jane@acme.example, then a SHA-256 hash ready to upload.
- Normalised
- jane@acme.example
- Input
- Jane@Acme.Example
- Rule
- Trimmed, lower case
What this means for you
Upload hashed addresses to an ad audience so the raw emails are never shared.
- Each platform's normalisation, then SHA-256
- Phones in E.164 for Google, digits for Meta
- Optional Gmail dot and +tag rule for Google
- Upload-ready CSV plus a hash audit file
- SHA-256
- Audiences
- E.164
By SimpleVerifier Team · Last updated · Runs in your browser; nothing you paste is sent to us
How do I hash an email list for Customer Match or Meta?
- Paste emails or phone numbers, or upload a CSV. Email and phone columns are found automatically; other columns are ignored. Files can be up to 25 MB.
- Pick the ad platform. It changes how phone numbers are written before hashing, and whether Gmail dots are removed.
- Pick the default country for phone numbers written without a + code.
- Press Hash for upload, then download the upload file. The audit file shows each input, its normalised form and its hash, so you can check any row.
Example
- You enter
- The address
Jane@Acme.Examplewith Google chosen as the ad platform. - You get
- It is trimmed and lower-cased to
jane@acme.example, then hashed with SHA-256 into a 64-character hex string in an upload-ready CSV, plus an audit file showing each step. - Limits
- Hashing happens in your browser and nothing is uploaded. Runs in your browser with no row cap; an uploaded file can be up to 25 MB.
How do I hash email addresses for an ad platform?
Normalise each address exactly as the platform asks, then SHA-256 it; the normalising is the part that decides whether it matches. SHA-256 turns any change in the input into a completely different hash. Jane@Example.com and jane@example.com are the same person, but their hashes share nothing, so the platform can't match the first against the lower-case address it holds. A list hashed without normalising quietly loses matches with no error message.
Google's Customer Match formatting guidelines ask for lower-case emails with spaces removed, and phone numbers in E.164 format with the + and country code. Meta's custom audience documentation asks for trimmed, lower-case emails, and phones with symbols, letters and leading zeros removed and the country code included, so no +. Both expect lower-case hex SHA-256.
Should Gmail dots be removed before hashing?
For Google, yes: its Ads API guidance removes them from gmail.com and googlemail.com usernames. Google's Ads API normalisation guidance also removes dots and anything after a + from the username of gmail.com and googlemail.com addresses, so Jane.Doe+ads@gmail.com is hashed as janedoe@gmail.com. Gmail ignores both, so they're the same inbox. The option is on by default for Google and isn't applied for Meta, whose documentation doesn't include it.
Other domains are never changed beyond trimming and lower case, because on most mail servers a dot or +tag can be part of a different address. The Gmail address normalizer explains the rule in more detail.
Is a hashed email anonymous?
No: a hashed email is a fingerprint of the address, and anyone with the same address can compute the same hash. Hashing hides the address from casual view in the upload, and both platforms say they hash and match on their side. It isn't anonymisation: anyone holding the same email can compute the same hash. Upload only data you have the right to use for advertising under your privacy policy.
It also can't make a bad address match. Typos, closed mailboxes and abandoned addresses hash perfectly well and then match nobody. Fix typos with the email typo corrector and remove dead mailboxes before you hash; for phone columns, the phone number formatter shows which numbers don't parse.
How do Google and Meta normalise differently?
| Google Customer Match | Meta custom audience | |
|---|---|---|
| Trim, lower case | Trim, lower case | |
| Gmail dots and +tags | Removed (Ads API guidance) | Kept |
| Phone | E.164 with + (+14155552671) | Digits with country code (14155552671) |
| Hash | SHA-256, lower-case hex | SHA-256, lower-case hex |
Who uses this tool, and for what?
- Paid media managers
- Prepare a Customer Match or Meta custom audience upload from a CRM export without the raw list leaving your laptop.
- Data and privacy teams
- Hash before a vendor or agency handles the file, and keep the audit download as a record of exactly what was sent.
- Developers
- Check your own normalise-and-hash code against known-good output for a sample of rows before wiring up the Ads API.
- Agencies
- Turn a client's mixed email and phone sheet into the platform's column format in one pass.
What can’t this tool tell you?
- Hashing is not anonymisation. Anyone with the same email can compute the same hash, so treat the file as personal data.
- Phone numbers that aren't valid for their country are skipped rather than guessed at.
- Platforms may change their normalisation rules; check the current documentation if your match rate drops.
- It can't tell which addresses belong to real, active accounts; dead addresses hash fine and never match.
Common questions
- How do I hash email addresses?
- Trim spaces, convert to lower case, then run SHA-256 over the text and write the 32-byte result as 64 lower-case hex characters. For Google Customer Match, also remove dots and +tags from gmail.com usernames. The tool above does every step in your browser.
- How do I hash email addresses in Excel?
- Excel has no built-in SHA-256 function, so it needs a VBA macro or Power Query script. It's simpler to save the column as CSV, hash it here, and open the upload file in Excel. The audit download keeps the original, normalised and hashed values side by side.
- What does a hashed email look like?
- A 64-character string of digits and the letters a to f. Meta's documentation uses mary@example.com as an example; its SHA-256 hash starts f1904cf1a9d73a55 and runs to 64 characters. Any change in the input, even a capital letter, gives a completely different hash.
- How do I hash phone numbers?
- Format the number first: Google Customer Match wants E.164 with the + (+14155552671), Meta wants digits with the country code and no + (14155552671). Then SHA-256 hash the result. Pick the platform above and the formatting is done for you.
- How does Google Customer Match work?
- You upload a list of customer emails, phones or addresses, plain or SHA-256 hashed, and Google matches them against signed-in Google accounts to build an audience you can target or exclude. Values that aren't normalised, or that belong to no account, don't match.
Sources
A tidy list can still be full of dead addresses.
Extracting, deduplicating and syntax checks all work on the text of an address. None of them can tell whether the mailbox exists. Only the server that hosts it can answer that, through an SMTP check, and that is what the paid product does.
- Upload the cleaned file as it is: CSVs up to 100,000 rows
- A real SMTP mailbox check on every row, with catch-all detection
- Small list? $9 one-time covers 2,500 emails, no subscription
One plan, cancel anytime, no contract. Sign in with Google and your first 100 email checks are free, no card. The free tools stay free either way.