E-Mail-Adressen in Google Tabellen richtig hashen

8apps-Team·

E-Mail-Hashing scheitert an Groß- und Kleinschreibung, unsichtbaren Leerzeichen und Gmails Punktregeln – nie am Hash. Die richtige Reihenfolge, Plattform für Plattform.

Der Hash ist in Ordnung. Das Problem ist die Eingabe.

John@Example.com, john@example.com und john@example.com (Leerzeichen am Ende) sind ein Postfach und drei völlig verschiedene SHA-256-Digests. Jeder gescheiterte E-Mail-Match lässt sich auf so einen Moment zurückführen – deshalb geht es auf dieser Seite überwiegend um die drei Sekunden vor dem Hash.

Der universelle Durchgang: trimmen, dann kleinschreiben

Bei der Grundlage sind sich beide großen Plattformen einig. Meta: "Trim any leading and trailing spaces. Convert all characters to lowercase." Google Ads: kleinschreiben, Leerzeichen entfernen. In Google Tabellen:

=LOWER(TRIM(A2))

Zwei Fallen überleben diese Formel:

  • Das geschützte Leerzeichen. TRIM() entfernt CHAR(160) nicht – jenes unsichtbare Zeichen, das CSV-Exporte und Copy-and-paste hinterlassen. Wenn eine optisch saubere Zelle einen falschen Digest liefert: zuerst =SUBSTITUTE(A2, CHAR(160), "").
  • Versteckte Zeichen aus formatierten Quellen. Aus E-Mail-Programmen kopierte Adressen schleppen gelegentlich Zeichen mit der Breite null mit. Eine Längenprüfung gegen den erwarteten Wert (=LEN(A2)) ist der günstigste Detektor.

Die Weggabelung: Gmails Punkte und Pluszeichen

Hier unterscheiden sich die Plattformen wirklich, und die Regel der einen auf die andere zu übertragen beschädigt die Daten:

  • Google Ads dokumentiert eine zusätzliche Bereinigung ausschließlich für gmail.com- und googlemail.com-Adressen: Punkte im Nutzernamen entfernen und alles ab einem + streichen. Jane.Doe+Shopping@googlemail.comjanedoe@googlemail.com. Das auf andere Domains anzuwenden ist falsch – in den meisten Mailsystemen sind Punkte bedeutsam, und Googles Regel nennt nur diese beiden Domains.
  • Meta dokumentiert überhaupt keine Punkt- oder Plus-Regel. Trimmen und Kleinschreiben ist die vollständige dokumentierte Anweisung.

Eine Gmail-lastige Liste braucht deshalb zwei E-Mail-Spalten – eine Google-normalisiert, eine Meta-normalisiert – genau wie bei Telefonnummern (diese Geschichte steht in unserem Leitfaden zum Hashen von Telefonnummern).

Dann hashen – und es einmal beweisen

SHA-256, Hex-Ausgabe in Kleinbuchstaben – Metas Doku schreibt Kleinbuchstaben-Hex ausdrücklich vor. Google Tabellen hat keine eingebaute Hash-Funktion (in Googles Funktionsliste findet sich nichts Kryptografisches), der Digest kommt also aus Apps Script oder einem Add-on. Was auch immer du nutzt: Beweise die Kette einmal. Meta veröffentlicht den erwarteten Digest für john_smith@gmail.com

62a14e44f765419d10fea99367361a727c12365e2520f32218d505ed9aa0f62f

– hashe also genau diese Zeichenkette. Die richtige Antwort validiert deine gesamte Kette; alles andere heißt: erst die Formel reparieren, dann die Liste anfassen.

Die Checkliste

  1. SUBSTITUTE(…, CHAR(160), ""), wenn die Quelle ein CSV oder eine Einfügung war
  2. LOWER(TRIM(…)) – immer
  3. Gmail-Punkt/Plus-Bereinigung – nur für die Google Ads-Spalte, nur für diese beiden Domains
  4. SHA-256, Hex in Kleinbuchstaben
  5. Prüfung mit dem Testwert – einmal pro Pipeline, nicht pro Liste

Wo Hash Data hineinpasst

Hash Data legt die Hash-Funktionen direkt neben diese Formeln in die Tabelle, sodass Normalisieren-dann-Hashen ein Herunterziehen ist statt eines Skripts, das gepflegt werden muss – mehrere Algorithmen, Standard-Hex-Ausgabe, in genau der Tabelle, in der die Liste ohnehin liegt.

Quellen