Hashfunktionen

Sie können Hashfunktionen zum Codieren von Daten verwenden, indem Sie die Eingabe in einen Hash-Code oder einen Hashwert transformieren. Der Hashalgorithmus ist so konzipiert, dass die Wahrscheinlichkeit minimiert wird, dass zwei Eingaben denselben Hashwert haben; dies wird als Kollision bezeichnet.

Sie können Hashfunktionen verwenden, um das Abrufen von Datensätzen zu beschleunigen (einfache unidirektionale Suchen), Daten zu validieren (mithilfe von Kontrollsummen) und die Verschlüsselung durchzuführen. Bei Suchen wird der Hash-Code als Index für eine Hashtabelle verwendet, die einen Verweis auf den Datensatz enthält. Bei Kontrollsummen wird der Hash-Code für die Daten vor der Speicherung oder Übertragung berechnet und anschließend erneut berechnet, um die Datenintegrität zu prüfen. Wenn die Hashcodes nicht übereinstimmen, sind die Daten beschädigt. Kryptografische Hashfunktionen werden für die Datensicherheit verwendet.

Zu den gängigen Anwendungsfällen für Hashfunktionen gehören folgende:
  • Erkennen von doppelten Datensätzen. Da die Hashwerte für Hashschlüssel von Duplikaten in demselben "Bucket" der Hashtabelle erstellt werden, wird der Scanprozess durch diese Task auf Buckets mit mehr als zwei Datensätzen begrenzt. Dies ist eine viel schnellere Methode, als die einzelnen Datensätze in der Datei zu sortieren und zu vergleichen. Außerdem können Sie Hashverfahren verwenden, um ähnliche Datensätze zu finden: Da ähnliche Schlüssel benachbarte Buckets verwenden, kann die Suche nach ähnlichen Datensätzen auf diese Buckets beschränkt werden.
  • Positionieren von Punkten, die nahe beieinander liegen. Das Anwenden einer Hashfunktion auf räumliche Daten ermöglicht es, den Bereich, der in einem Raster modelliert wird, effektiv aufzuteilen. Wie im vorherigen Beispiel wird die Abfrage- und Vergleichszeit stark reduziert, weil nur benachbarte Zellen im Raster durchsucht werden müssen. Dieses Verfahren funktioniert auch für andere Typen von räumlichen Daten, wie z. B. Formen und Bilder.
  • Prüfen der Nachrichtenintegrität. Der Hashwert von Message-Digests wird sowohl vor als auch nach der Übertragung erstellt und die beiden Hashwerte werden verglichen, um zu ermitteln, ob die Nachricht beschädigt ist.
  • Prüfen von Kennwörtern. Während der Authentifizierung werden die Anmeldeberechtigungsnachweise eines Benutzers hashverschlüsselt; dieser Wert wird dann mit dem hashverschlüsselten Kennwort verglichen, das für den betreffenden Benutzer gespeichert ist.