Hash
Ein Hash ist eine Funktion, die einen Wert in einen anderen umwandelt. Das Hashing von Daten ist in der Informatik weit verbreitet und wird für verschiedene Zwecke verwendet. Beispiele sind Kryptografie, Komprimierung, die Erzeugung von Prüfsummen und die Indizierung von Daten.
Hashing eignet sich besonders für die Kryptografie, weil dabei die ursprünglichen Daten durch einen anderen Wert maskiert werden. Eine Hashfunktion kann einen Wert erzeugen, der nur durch das Nachschlagen des Werts in einer Hashtabelle decodiert werden kann. Die Tabelle kann ein Array, eine Datenbank oder eine andere Datenstruktur sein. Eine gute kryptografische Hashfunktion ist nicht umkehrbar, das heißt, sie kann nicht rückwärts rekonstruiert werden.
Verschiedene Arten der Komprimierung, etwa die verlustbehaftete Bildkomprimierung und die Medienkomprimierung, können Hashfunktionen verwenden, um die Dateigröße zu verringern. Durch das Hashing von Daten in kleinere Werte können Mediendateien in kleinere Abschnitte komprimiert werden. Diese Art des Einweg-Hashings kann nicht rückgängig gemacht werden, erzeugt aber eine Annäherung an die ursprünglichen Daten, die weniger Speicherplatz benötigt.
Hashes werden auch zum Erstellen von Prüfsummen verwendet, die die Integrität von Dateien überprüfen. Eine Prüfsumme ist ein kleiner Wert, der anhand der Bits in einer Datei oder einem Datenblock wie einem Datenträgerabbild erzeugt wird. Wenn die Prüfsummenfunktion auf einer Kopie der Datei ausgeführt wird, etwa auf einer aus dem Internet heruntergeladenen Datei, sollte sie denselben Hashwert wie die ursprüngliche Datei erzeugen. Wenn die Datei nicht dieselbe Prüfsumme erzeugt, wurde etwas in der Datei verändert.
Schließlich werden Hashes zum Indizieren von Daten verwendet. Hashwerte können dazu verwendet werden, Daten einzelnen „Buckets“ innerhalb einer Hashtabelle zuzuordnen. Jeder Bucket hat eine eindeutige ID, die als Verweis auf die ursprünglichen Daten dient. Dadurch entsteht ein Index, der deutlich kleiner als die ursprünglichen Daten ist und das Suchen und Abrufen der Werte effizienter ermöglicht.
Testen Sie Ihr Wissen