Free tool, runs entirely in your browser

California’s own test vectors, run live

California publishes worked examples showing exactly what its deletion system expects an identifier to hash to. This page runs every one of them against our matching engine, in your browser, each time you load it. Expected on the left, what our code actually produced on the right.

Running
checks in progress

The 14 per-type vectors

These are the worked examples California publishes in its standardization tables, one per identifier type. This is the set our engine and the hash checker are validated against.

IdentifierThe state’s inputExpected hashOur engine produced
EmailAnna.Smith@Domain.com
cleaned up to anna.smith@domain.com
KA18MT/ph6IHYjzT9zwETySDQyvSh87YuoSBpOQtkhE=
Phone, country code dropped+1(415)555-9317
cleaned up to 4155559317
vGM7y5n+hBXRSEAklhHDPCbysyNgYTmXdMcagGUOY8E=
Phone, last 10 of 11 digits+84(90)123 4567
cleaned up to 4901234567
ptzVkgbv9DonwvPCHmXmJ2SEOaolSh37z3ZzY/Gmm+U=
Phone, exactly 10 digits+354(123)4567
cleaned up to 3541234567
Btrzydf5K6ALAKKXJGFHSx7u5bDzHC9WlVYtpq1n2rY=
Date of birth to YYYYMMDDJuly 4, 1776
cleaned up to 17760704
skXYXxBER6HQTZ3rXSZH1wVGLQ054mS5rbR/bwvzy4I=
ZIP, the +4 dropped91790-3771
cleaned up to 91790
2FPZucR4x7U8KlM+SFAX4LPGhwNz/PIZUCSUdDh0o/s=
ZIP, Canadian postal codeM1B 1A1
cleaned up to m1b1a
n8L9q8mVeT6Xt9/EeUNiTukGDrkbPJ3DvOEx14uElxk=
ZIP, leading zeros stripped first00712345
cleaned up to 71234
aeNUYKh7Xw5sqpxSbSP9eOHsj6iXewbUyavv89DIuhQ=
ZIP, short after zero-stripping00300-9999
cleaned up to 300
mDvWFLta/s5as7YCP3EUfNe2vCMU+dJ690IlQcZVg4k=
Name, compound first nameJuan Pablo
cleaned up to juanpablo
91hIbrbzNeqHs3o81O5yNrXUj7wDd2shvZ6THKi9qz8=
Name, surnameMartinez
cleaned up to martinez
2wRPGbwBNxhShjRczx8GfS2c4cjvs4NJskeWloUNtp8=
Mobile advertising IDa3f1c2d4-5678-90ab-cdef-1234567890ab
cleaned up to a3f1c2d4567890abcdef1234567890ab
250KY6lOgzYUB3EHrkbDCE2kMEZQE69SF38muhoDudI=
Vehicle identification number1HGCM82633A004352
cleaned up to 1hgcm82633a004352
iNswy1m+0VSt8jAfFrvaiQ1R/0HAbgSwNGkwqo6QBss=
Connected TV device IDSmartTV_9F8E7D6C
cleaned up to smarttv9f8e7d6c
d9fxuTIrKksBXYDlaWsvQbcyUUfCbUx7v78gd+KP+tc=

The two composite constructions

Some deletion requests identify a person by several fields at once. Each field is hashed on its own, the results are joined end to end with nothing between them, and that whole string is hashed again. Getting this wrong is the most expensive mistake in a DROP integration, because it produces no matches at all rather than an error, which looks identical to having no Californians in your data.

IdentifierThe state’s inputExpected hashOur engine produced
Name, date of birth and ZIP togetherDanielle Johnson, 1985-07-04, 91790PQOfn1RffEKmqMmNAzDKKaoZCwxWbQZkQzPWmQo9REA=
Name and VIN togetherEve Genesis, 1HGCM82633A004352rtnDuXIe63jXYQQXW5r07GJ7lSsrib8+46QuKFwkOmk=
Why this page exists. Every broker doing this has to reproduce these hashes exactly, and the failure is silent. An engine that is wrong reports that none of the state’s requests match your customers, which is indistinguishable from a clean result until an audit says otherwise. You can check any vendor this way, including us.

Nothing on this page is transmitted. The hashes are computed by the same code that runs a real cycle, loaded into your browser. The specification and the transliteration tables are in our hashing guide, and you can hash your own values on the hash checker.