Hashing und Kodierung
Dieses Kapitel beschreibt, wie Sie mittels Feldfunktionen Daten kodieren und Hash Algorithmus, der digitale Inhalte durch eine einmalige Kombination aus Zahlen und Buchstaben kodiert und eindeutig identifizierbar macht. Im E-Mail-Marketing ermöglichen die erzeugten Hash-Werte die eindeutige Identifikation von Inhalten, ohne die personenbezgenen Daten wie die E-Mail-Adresse kenntlich zu machen.-Werte erzeugen können.
Verwenden Sie Ihre spezifischen Daten und Empfängerlistenfelder, und testen Sie die Feldfunktionen, bevor Sie sie in einem Mailing verwenden.
Base64
Base64 ist eine Kodierungsmethode, um Daten nicht im Klartext anzuzeigen.
Base64 ist keine Verschlüsselungsmethode, da Sie die kodierten Daten einfach dekodieren können.
Um den Inhalt eines Empfängerlistenfeldes mittels Base64 zu kodieren, können Sie folgenden Velocity-Code als Standard-Ersetzung verwenden:
#if(!$StringHelper.isEmpty($!user.data.RECIPIENTLISTFIELD))${bmMisc.encodeBase64($user.data.RECIPIENTLISTFIELD)}#end
Da der Inhalt von Empfängerlistenfeldern auch leer (unbekannt, NULL-Wert) sein kann, wandelt das Code-Beispiel mögliche NULL-Werte in leere String-Werte um.
MD5
MD5 ist eine Hash-Methode, mit der Sie Prüfsummen erstellen können, um zum Beispiel die Integrität von Daten zu überprüfen.
MD5 ist keine Verschlüsselungsmethode. Das Hashing ist nicht umkehrbar. Zudem ist MD5 nicht kollisionsfrei, da unterschiedliche Eingaben zum selben Hash-Wert führen können.
Die folgenden Feldfunktionsvorlagen verwenden zusätzlich einen Schlüssel (key), um den Sicherheitsfaktor zu erhöhen:
Velocity
#set ($key = "1234567890")
#set ($string = "STRINGWERT$key")
$StringHelper.md5($string)
ODR
<odr:set var="key" value="1234567890" />
<odr:set var="string" value="STRINGWERT%{key}" />
<odr:out value="%{md5(string)}" />
MD5 und Base64
Der folgende Velocity-Code verwendet einen Schlüssel (0123456789
) für das MD5-Hashing. Mittels Base64 werden die Empfängerdaten kodiert. Zudem überprüft der Code, ob das Empfängerlistenfeld leer ist. Die Funktion $StringHelper.md5()
erzeugt abschließend einen Hash-Wert aus den aneinandergereihten Base64-Werten.
#set($key = "0123456789")
#set($email = "$bmMisc.encodeBase64($!user.data.email)")
#if(!$StringHelper.isEmpty($!user.data.salutation))
#set($salutation = "$bmMisc.encodeBase64($!user.data.salutation)")
#end
#if(!$StringHelper.isEmpty($!user.data.firstname))
#set($firstname = "$bmMisc.encodeBase64($!user.data.firstname)")
#end
#if(!$StringHelper.isEmpty($!user.data.lastname))
#set($lastname = "$bmMisc.encodeBase64($!user.data.lastname)")
#end
#if(!$StringHelper.isEmpty($!user.data.sender))
#set($sender = "$bmMisc.encodeBase64($!user.data.sender)")
#end
#set($name = "$bmMisc.encodeBase64($mailing.name)")
#if(!$StringHelper.isEmpty($!user.data.shopsource))
#set($shopsource = "$bmMisc.encodeBase64($!user.data.shopsource)")
#end
#set($string = "$!email$!salutation$!firstname$!lastname$!sender$!name$!shopsource$!key")
$StringHelper.md5("$string")
SHA256
SHA256 ist eine weitere Methode, um aus Empfängerdaten Hash-Werte zu erzeugen.
SHA256 kann in Velocity nur String-Werte verarbeiten.
Um den Inhalt eines Empfängerlistenfeldes mittels SHA256 zu kodieren, können Sie folgenden Velocity-Code als Standard-Ersetzung verwenden:
#set($string = "STRINGWERT")
$StringHelper.sha256($string)
SHA256 und Base64
Der folgende Velocity-Code verwendet SHA256 und Base64, um die E-Mail-Adresse des Empfängers zu kodieren:
${bmMisc.hashSha256AndEncodeBase64($user.data.email)}