Hashing

Was ist Hashing?

Hashing ist der Prozess der Übersetzung eines gegebenen Schlüssels in einen Code. Eine Hash-Funktion wird verwendet, um die Informationen durch einen neu generierten Hash-Code zu ersetzen. Genauer gesagt wird beim Hashing eine Zeichenkette oder ein Eingabeschlüssel, eine Variable, die zur Speicherung narrativer Daten erstellt wurde, mit einem Hash-Wert dargestellt, der in der Regel durch einen Algorithmus bestimmt wird und eine viel kürzere Zeichenkette als das Original darstellt (siehe auch: Wie funktionieren Kryptowährungen).

Die Hash-Tabelle erstellt eine Liste, in der alle Wertepaare gespeichert und über ihren Index leicht zugänglich sind. Das Ergebnis ist eine Technik für den sehr effizienten Zugriff auf Schlüsselwerte in einer Datenbanktabelle sowie eine Methode zur Verbesserung der Sicherheit einer Datenbank durch Verschlüsselung.

Beim Hashing werden Algorithmen verwendet, die Datenblöcke aus einer Datei in einen viel kürzeren Wert oder Schlüssel mit fester Länge umwandeln, der diese Zeichenfolgen repräsentiert. Der daraus resultierende Hash-Wert ist eine Art konzentrierte Zusammenfassung jeder Zeichenkette in einer bestimmten Datei und sollte sich selbst dann ändern können, wenn ein einziges Byte der Daten in dieser Datei geändert wird (Lawineneffekt).

Dies bringt dem Hashing enorme Vorteile in Bezug auf die Datenkompression. Obwohl Hashing keine Komprimierung ist, kann es ähnlich wie eine Dateikomprimierung funktionieren, indem es einen größeren Datensatz in eine handlichere Form bringt.

Nehmen wir an, Sie hätten “John’s wallet ID” 4000 Mal in einer Datenbank geschrieben. Indem Sie alle diese sich wiederholenden Zeichenfolgen in eine kürzere Zeichenfolge hashen, sparen Sie eine Menge Speicherplatz.

Techopedia erklärt Hashing

Stellen Sie sich einen Drei-Wort-Satz vor, der in einer Datenbank oder an einem anderen Speicherort kodiert ist und durch Hashing in einen kurzen alphanumerischen Wert umgewandelt werden kann, der nur aus ein paar Buchstaben und Zahlen besteht. Dies kann in großem Maßstab unglaublich effizient sein, und das ist nur ein Grund, warum Hashing verwendet wird.

Hashing in der Computerwissenschaft und Verschlüsselung

Hashing hat in der Informatik mehrere wichtige Anwendungen. In einer Welt, in der Cybersicherheit eine zentrale Rolle spielt, wird dem Hashing in der Verschlüsselung vielleicht die größte Aufmerksamkeit geschenkt.

Da gehashte Zeichenfolgen und Eingaben nicht in ihrer ursprünglichen Form vorliegen, können sie nicht gestohlen werden, wie es möglich wäre, wenn sie nicht gehasht wären.

Wenn ein Hacker auf eine Datenbank zugreift und eine ursprüngliche Zeichenfolge wie “Johns Brieftaschen-ID 34567” findet, kann er diese Informationen einfach auslesen, stehlen oder entwenden und zu seinem Vorteil nutzen, aber wenn er stattdessen einen Hash-Wert wie “a67b2” findet, sind diese Informationen für ihn völlig nutzlos, es sei denn, er hat einen Schlüssel, um sie zu entschlüsseln. SHA-1, SHA-2 und MD5 sind beliebte kryptografische Hash-Funktionen.

Eine gute Hash-Funktion für Sicherheitszwecke muss ein unidirektionaler Prozess sein, der einen Einweg-Hashing-Algorithmus verwendet. Andernfalls könnten Hacker den Hash leicht zurückverwandeln, um ihn in die ursprünglichen Daten umzuwandeln, wodurch der Zweck der Verschlüsselung zunichte gemacht würde.

Um die Einzigartigkeit der verschlüsselten Ergebnisse weiter zu erhöhen, können der Eingabe einer Hash-Funktion Zufallsdaten hinzugefügt werden. Diese Technik wird als “Salting” bezeichnet und garantiert selbst bei identischen Eingaben eine eindeutige Ausgabe. Beispielsweise können Hacker die Passwörter von Benutzern in einer Datenbank mit Hilfe einer Regenbogentabelle erraten oder mit Hilfe eines Wörterbuchangriffs auf sie zugreifen.

Einige Benutzer haben möglicherweise dasselbe Passwort, das, wenn es vom Hacker erraten wird, für alle gestohlen wird. Durch das Hinzufügen des “Salzes” wird verhindert, dass der Hacker auf diese nicht eindeutigen Kennwörter zugreifen kann, da jeder Hash-Wert nun eindeutig ist und ein Angriff auf die Rainbow-Table verhindert wird.

Verwendung von Hashing beim Abrufen von Datenbanken

Hashing kann bei der Abfrage von Datenbanken eingesetzt werden. Viele Experten vergleichen Hashing mit einer der wichtigsten Bibliotheksinnovationen des 20. Jahrhunderts – dem Dewey-Dezimalsystem.

Wenn Sie einen Hash-Wert abrufen, erhalten Sie gewissermaßen eine Dewey-Dezimalsystem-Nummer für ein Buch. Anstatt nach dem Titel des Buches zu suchen, suchen Sie nach der Adresse oder der Kennung des Dewey-Dezimalsystems sowie nach einigen alphanumerischen Schlüsselzeichen des Buchtitels oder des Autors.

Wir haben gesehen, wie gut das Dewey-Dezimalsystem in Bibliotheken funktioniert hat, und es funktioniert genauso gut in der Informatik. Kurz gesagt, durch die Schrumpfung dieser ursprünglichen Eingabezeichenfolgen und Datenbestände in kurze alphanumerische Hash-Schlüssel können Ingenieure mehrere wichtige Verbesserungen der Cybersicherheit vornehmen und gleichzeitig Speicherplatz sparen.

Die Rolle des Hashings bei Dateimanipulationen

Hashing ist auch bei der Verhinderung oder Analyse von Dateimanipulationen von Nutzen. Die Originaldatei erzeugt einen Hash, der zusammen mit den Dateidaten gespeichert wird. Die Datei und der Hash werden zusammen gesendet, und die empfangende Partei überprüft diesen Hash, um festzustellen, ob die Datei manipuliert wurde. Wurde die Datei verändert, zeigt der Hash dies an.

All dies zeigt, warum Hashing ein so beliebter Teil der DB-Verarbeitung ist.

Verwandte Begriffe

Margaret Rouse

Margaret Rouse ist eine preisgekrönte technische Autorin und Dozentin. Sie ist für ihre Fähigkeit bekannt, komplexe technische Themen simpel und nachvollziehbar zu erklären. In den letzten zwanzig Jahren sind ihre Erklärungen auf TechTarget-Websites erschienen und sie wurde in Artikeln der New York Times, des Time Magazine, USA Today, ZDNet, PC Magazine und Discovery Magazine als Quelle und Expertin zitiert. Wenn Sie einen Vorschlag für eine neue Definition haben oder eine technische Erklärung verbessern möchten, schicken Sie einfach Margaret eine E-Mail oder kontaktieren Sie sie auf LinkedIn oder Twitter.