Was sind Hashes?
Hashes sind mathematische Formeln, die eine Folge von Daten variabler Länge, normalerweise in Form von Text, in kürzere numerische Werte fester Länge konvertieren. Hashes werden häufig in Computerdatenbanken verwendet, um die Suche schneller und effizienter zu gestalten. Sie werden auch bei der Verschlüsselung verwendet, um sicherzustellen, dass Passwörter nicht kompromittiert werden, und um unter anderem digitale Signaturen zu authentifizieren. Hashes werden auch als Hash-Funktionen bezeichnet und können auch als Algorithmen betrachtet werden.
Hashes spielen eine große Rolle bei der Erleichterung der Datenbanksuche. In einer Datenbank, die aus Namen besteht, müsste der Computer beispielsweise, wenn ein Benutzer nach "John Doe" sucht, alle Zeichen in der Suche mit denen jedes Datenbankeintrags abgleichen. Jedes Zeichen im Namen hätte 26 verschiedene Möglichkeiten - die Buchstaben des englischen Alphabets -, während die variable Länge der Einträge auch die Suche verlangsamen würde.
Im Gegensatz dazu würde das Anwenden einer Hash-Funktion das Leben des Computers erheblich erleichtern. Das Umwandeln jeder Textzeichenfolge in eine Reihe von Zahlen würde die Suche vereinfachen, da der Computer nur zehn Möglichkeiten hätte, nach jedem Zeichen zu suchen: Ziffern „0“ bis „9“. Die feste Länge der Zahlenreihen hilft dem Computer auch dabei, dies zu tun effizienter arbeiten.
In einer Datenbank mit einer angewendeten Hash-Funktion haben alle Einträge eine entsprechende eindeutige Nummer. Dies wird als Hash-Schlüssel bezeichnet. In diesem Fall wendet der Computer bei einer Suche zuerst die Hash-Funktion auf die von Ihnen geschriebene Eingabe an, z. B. "John Doe". Dies führt zu einem numerischen Wert, z. B. "456789". Der Computer kann dann schnell Ordnen Sie dieses Ergebnis dem Hash-Schlüssel zu, der dem richtigen Eintrag entspricht.
Hashes fungieren auch als digitale Signaturen. Ein Absender, Robert, möchte beispielsweise ein Dokument an jemanden senden, und der Empfänger, Mary, möchte sicherstellen, dass das Dokument auf dem Weg nicht manipuliert wurde. Der Absender, Robert, muss das Dokument nur über eine Hash-Funktion ausführen, was zu einem numerischen Wert führt. Robert verschlüsselt dann den Hash-Schlüssel und sendet das Dokument zusammen mit dem verschlüsselten Schlüssel.
Mary empfängt beide Elemente und entschlüsselt den Hash-Schlüssel. Sie kann jetzt den numerischen Wert sehen, der sich aus dem Dokument vor dem Senden ergeben hat. Um zu überprüfen, ob das Dokument in ihren Händen genau dasselbe ist, führt sie das Dokument über eine Hash-Funktion auf ihrem Computer aus. Zuletzt vergleicht sie beide Schlüssel. Wenn sie identisch sind, wurde das Dokument auf dem Weg zum Empfänger nicht geändert.
Es gibt viele verschiedene Hash-Funktionen mit jeweils eigenen mathematischen Formeln. Damit eine Hash-Funktion funktioniert, muss sie Kollisionen minimieren, die auftreten, wenn zwei Datenbankeinträge denselben Hash-Schlüssel haben. Hash-Funktionen müssen auch in eine Richtung ausgeführt werden. Das heißt, Sie können einen Schlüssel aus einem Datenbankeintrag oder einem Dokument erzeugen, aber nicht umgekehrt. Mit anderen Worten, Sie können das Originaldokument nicht von seinem Hash-Schlüssel aus zurückentwickeln.