Ein Hash ist der Prüfwert fester Länge, den eine Hash-Funktion aus beliebigen Daten berechnet. Dasselbe Eingangsmaterial ergibt immer denselben Hash, eine winzige Änderung einen völlig anderen.
- Hash
Der Prüfwert fester Länge, den eine Hash-Funktion aus beliebigen Daten berechnet.
Beispiel: „Die Prüfsumme auf der Downloadseite ist ein Hash der Datei.“Auch: Hashwert. Die Technische Richtlinie des BSI schreibt dazu, der Ausgabewert einer Hashfunktion werde „als Hashwert oder kurz als Hash bezeichnet“.
Abgrenzung zur Verschlüsselung: Ein Hash lässt sich nicht zurückrechnen, auch nicht mit einem Schlüssel. Es gibt keinen Weg zurück, nur den Vergleich.
Wozu ein Hash dient
Zum Vergleichen, ohne das Original zu kennen. Wer prüfen will, ob eine heruntergeladene Datei unverändert ist, bildet ihren Hash und vergleicht ihn mit dem angegebenen. Wer ein Passwort prüfen will, bildet den Hash der Eingabe und vergleicht ihn mit dem gespeicherten, ohne das Passwort je im Klartext zu halten; wie das korrekt gemacht wird, steht beim Passwort-Hashing.
Was ein Hash nicht ist
Kein Verschlüsseln und keine Zufallszahl. Verschlüsseltes lässt sich mit dem richtigen Schlüssel wieder lesen, ein Hash nie. Zufällig ist er ebenfalls nicht: Dieselbe Eingabe ergibt auf jedem Rechner denselben Wert, und genau darauf beruht seine Nützlichkeit. Diese Eindeutigkeit ist zugleich die Schwäche, wenn es um Passwörter geht, siehe Rainbow Table.
Einen Hash selbst bilden
Mit einem Aufruf auf der Kommandozeile. Das folgende Beispiel hasht zwei Sätze, die sich in zwei Buchstaben unterscheiden.
$ printf 'Die Rechnung geht an die Muster GmbH.' | shasum -a 256
5a65fecba98423670316642633a5e482dc52fc0e1221715658dac707f063b92c -
$ printf 'Die Rechnung geht an die Muster AG.' | shasum -a 256
7499e8251bca719fd1d24b9a4e31ea5c9a176007018e80441a6f3ddbf11a3fb8 -Aus „GmbH“ wird „AG“, und vom Prüfwert bleibt nichts übrig. Genau darauf beruht die Nützlichkeit: Wer den erwarteten Hash kennt, erkennt jede Veränderung, auch die kleinste. Der Bindestrich hinter dem Wert ist der Dateiname, den das Werkzeug nennt; bei einer Eingabe über die Pipe steht dort nichts anderes.
Wo Hashes im Alltag vorkommen
An mehr Stellen, als die meisten vermuten. Jede Versionsverwaltung nennt ihre Änderungen beim Hash. Jede Prüfsumme neben einem Download ist einer. Jedes gespeicherte Passwort sollte einer sein. Jede digitale Signatur rechnet über den Hash eines Dokuments und nicht über das Dokument selbst, weil das schneller geht und am Ergebnis nichts ändert.