HASH( )-Funktion
Gibt einen kryptografischen Hashwert mit Salt basierend auf dem Eingabewert zurück.
Syntax
HASH(Feld <;Salt_Wert>)
Parameter
Name | Typ | Beschreibung |
---|---|---|
Feld |
Zeichen numerisch Datumzeit logisch |
Der Wert, für den ein Hashwert erstellt werden soll. |
Salt_Wert
Optional |
Zeichen numerisch |
Der zu verwendende Salt-Wert. Sie können einen Bei fehlender Angabe wird der standardmäßige Salt-Wert von Analytics verwendet. Der Salt-Wert ist auf 128 Zeichen beschränkt und wird automatisch auf 128 Zeichen gekürzt, wenn Sie einen längeren Salt-Wert angeben. Weitere Informationen finden Sie unter Der Salt-Wert. |
Ausgabe
Zeichen.
Beispiele
Einfache Beispiele
Mit dem standardmäßigen Salt-Wert von Analytics
Gibt „819A974BB91215D58E7753FD5A42226150100A0763087CA7DECD93F3C3090405“ zurück:
HASH("555-44-3322")
Gibt den Hashwert für jede Nummer des Felds Kreditkartennr zurück:
HASH(Kreditkartennr)
Mit einem benutzerspezifischen Salt-Wert
Gibt „AD1E7D9B97B6F6B5345AB13471A74C31EBE6630CA2622BB7E8C280E9FBEE1F17“ zurück:
HASH("555-44-3322"; "mein Salt-Wert 123")
Weiterführende Beispiele
Identische Hashwerte sicherstellen
Verwenden Sie zusammen mit HASH( ) andere Funktionen, um Klartextwerte zu standardisieren, falls diese identische Hashwerte ergeben sollen.
Betrachten Sie dazu die folgenden Beispiele: Beachten Sie, wie die Groß- und Kleinschreibung der Klartextwerte in den ersten beiden Beispielen den ausgegebenen Hashwert vollständig verändert.
Gibt „DF6789E1EC65055CD9CA17DD5B0BEA5892504DFE7661D258737AF7CB9DC46462“ zurück:
HASH("John Smith")
Gibt „3E12EABB5940B7A2AD90A6B0710237B935FAB68E629907927A65B3AA7BE6781D“ zurück:
HASH("JOHN SMITH")
Wenn Sie die UPPER( )-Funktion zur Standardisierung der Groß- und Kleinschreibung verwenden, ergeben sich identische Hashwerte.
Gibt „3E12EABB5940B7A2AD90A6B0710237B935FAB68E629907927A65B3AA7BE6781D“ zurück:
HASH(UPPER("John Smith"))
HASH( ) verwenden, um große Textblöcke zu vergleichen
Verwenden Sie HASH( ), um zu testen, ob Textblöcke in zwei Kommentarfeldern identisch sind.
Erstellen Sie für diesen Test ähnlich wie unten aufgeführt zwei Kalkulationsfelder. Dann erstellen Sie einen Filter, um Textblöcke zu finden, die nicht identisch sind.
DEFINE FIELD Hash_1 COMPUTED HASH(Kommentarfeld_1) DEFINE FIELD Hash_2 COMPUTED HASH(Kommentarfeld_2) SET FILTER TO Hash_1 <> Hash_2
Wenn sich die Kommentarfelder in unterschiedlichen Tabellen befinden, erstellen Sie in jeder Tabelle ein berechnetes HASH( )-Feld und verwenden die Kalkulationsfelder als ein gemeinsames Schlüsselfeld für eine Zusammenführung nicht übereinstimmender Daten der beiden Tabellen. Die Datensätze der zusammengeführten Ausgabetabelle stellen Textblöcke dar, die nicht identisch sind.
Bemerkungen
Wann Sie HASH( ) verwenden sollen
Verwenden Sie die HASH( )-Funktion, um sensible Daten wie beispielsweise Kreditkartennummern, Gehaltsinformationen oder Sozialversicherungsnummern zu schützen.
Funktionsweise
HASH( ) bietet eine Kodierung in einer Richtung. Daten im Klartext können verwendet werden, um einen Hashwert zu erstellen. Der Hashwert selbst kann jedoch später nicht mehr entschlüsselt oder zurückberechnet werden.
Ein spezifischer Wert in Klartext ergibt stets denselben Hashwert. Sie können also ein Feld mit Hashwerten von Kreditkartennummern nach Duplikaten durchsuchen oder zwei Felder mit Hashwerten von Kreditkartennummern zusammenführen. In beiden Fällen sind die Ergebnisse genauso, als ob sie die Operation mit den jeweiligen Feldern in Klartext durchgeführt hätten.
Sensible Daten schützen
Um keine sensiblen Daten auf einem Server zu speichern, können Sie mit der HASH( )-Funktion lokal ein Kalkulationsfeld berechnen und dann eine neue Tabelle erstellen, indem Sie das Hashfeld und sonstige benötigte Felder extrahieren, das Klartextfeld jedoch ausschließen. Die neue Tabelle können Sie auf dem Server für Ihre Analyse verwenden und beim Vorliegen der Ergebnisse zurück auf die Originaltabelle verweisen, falls Sie erneut die Klartextversion der Hashdaten benötigen.
Wenn das lokale Speichern sensibler Daten nach der ersten Nutzung verboten ist, können Sie die Originaltabelle nach dem Erstellen der neuen Tabelle mit den Hashwerten löschen und die Klartextwerte aus der Originalquelle abrufen.
Klartextwerte müssen absolut gleich sein
Damit identische Hashwerte erstellt werden, müssen die beiden Klartextwerte absolut gleich sein. Aus derselben Kreditkartennummer mit oder ohne Bindestriche bzw. demselben Namen in Groß- oder Kleinschreibung ergeben sich beispielsweise unterschiedliche Hashwerte.
Unter Umständen müssen Sie Funktionen wie INCLUDE( ), EXCLUDE( ) oder UPPER( ) in der HASH( )-Funktion zur Standardisierung der Klartextwerte einsetzen.
Führende und nachgestellte Leerzeichen werden automatisch durch die HASH( )-Funktion entfernt, Sie müssen also keine TRIM( )- oder ALLTRIM( )-Funktionen verwenden.
Was ist zu tun, wenn führende oder nachgestellte Leerzeichen wichtig sind?
Wenn Sie Daten aufweisen, in denen führende und nachgestellte Leerzeichen bedeutende Unterschiede der jeweiligen Werte verursachen, müssen Sie die Leerzeichen durch ein anderes Zeichen ersetzen, bevor Sie einen Hashwert berechnen.
Ersetzt vor der Berechnung des Hashwerts Leerzeichen in den Feldwerten durch den Unterstrich (_):
HASH(REPLACE(Feldname; " "; "_"))
Der für HASH( ) verwendete Kryptografiealgorithmus
HASH( ) verwendet einen kryptografischen SHA-2-Algorithmus, der unabhängig von der Länge des Eingabewerts eine Hashausgabe mit fester Länge von 64 Byte erstellt. Der Eingabewert in Klartext kann länger als 64 Byte sein.
Der Salt-Wert
Funktionsweise
Der Schutz der HASH( )-Funktion wird noch verstärkt, wenn Sie vor dem Hashing automatisch einen Salt-Wert festlegen. Der Salt-Wert ist eine alphanumerische Zeichenfolge, die an den Wert der Quelldaten angehängt wird. Danach wird die gesamte verkettete Zeichenfolge verwendet, um den Hashwert (mit Salt) zu berechnen. Durch diesen Ansatz sind die Hashwerte schwieriger zu dekodieren.
Optional einen eigenen Salt-Wert festlegen
Sofern Sie keinen Salt-Wert angeben, wird automatisch ein fester Standard-Salt-Wert verwendet. Sie können eine der folgenden Methoden verwenden, um einen Salt-Wert festzulegen:
-
Salt-Wert als Klartextzeichenfolge
Geben Sie eine alphanumerische Zeichenfolge an. Beispiel:
HASH(Kreditkartennr; "mein Salt-Wert")
-
Salt-Wert als Passwort
Verwenden Sie den Befehl PASSWORD zusammen mit der Funktion HASH( ) und geben Sie eine PASSWORD-Kennung von 1 bis 10 an: Beispiel:
PASSWORD 3 "Salt-Wert eingeben" EXTRACT FIELDS HASH(Kreditkartennr; 3) TO "Geschützte_Tabelle"
Hinweis
Der Salt-Wert für PASSWORD muss eingegeben werden, bevor das Feld in der HASH( )-Funktion extrahiert werden kann.
Der Vorteil der Verwendung einer PASSWORD-Kennung mit HASH( ) besteht darin, dass Sie keinen Salt-Wert in Klartext angeben müssen.
Weitere Informationen finden Sie unter PASSWORD-Befehl.
Richtlinien für Kennwortmethoden
Diese Methode ist für eine Nutzung in Skripts gedacht, welche zu Beginn des Skripts oder vor der Verwendung der HASH( )-Funktion innerhalb des Skripts zur Eingabe des Kennworts auffordern.
Die Kennwortmethode eignet sich nicht in Kalkulationsfeldern, weil PASSWORD-Zuweisungen gelöscht werden, sobald Sie Analytics schließen.
Überdies werden Kalkulationsfelder, die einen kennwortbasierten Salt-Wert verwenden, automatisch aus Ansichten entfernt, wenn Sie Analytics wieder öffnen. Das Entfernen ist notwendig, um die erneute Berechnung von Hashwerten mit dem Standard-Salt-Wert zu vermeiden. Die neu berechneten Werte würden von den ursprünglichen Hashwerten mit einem benutzerspezifischen Salt-Wert abweichen.