Hashing | Die Hashfunktion einfach erklärt

Was ist Hashing und wie wird ein Hashwert berechnet?

Der Begriff Hashing beschreibt ein Verfahren, bei dem eine große Anzahl von Datenmengen in kleinere eindeutige Zeichenfolgen umgewandelt werden. Die umgewandelten Zeichenfolgen werden nach der Verarbeitung als Hashwert oder Hashcode bezeichnet.

In der IT sind Begrifflichkeiten wie Hashing, Hashfunktion und Hashwert längst keine Seltenheit mehr. In diesem Beitrag versuche ich euch verständlich zu erklären, wie die Berechnung eines Hashwertes funktioniert und welche Vorteile uns der Hash-Algorithmus bringt.

Definition und Ziel von Hashing:

Das Ziel von Hashing ist es, Daten schneller zu speichern, zu sortieren und zu suchen, indem sie in eine feste Größe umgewandelt werden. Hashing findet häufig Anwendung in Datenbanken oder bei Verschlüsselungen. Jeder Hashwert ist nur einmalig vorhanden und kann einer Datei eindeutig zugeordnet werden. So erhält sie ihren individuellen Fingerabdruck. Hashing wird auch dazu verwendet, die Integrität und Sicherheit von Daten zu gewährleisten.

Inhaltsverzeichnis: Allgemeine Informationen zum Thema Hashing, Hash-Algorithmen und der Berechnung von Hashwerten

Was ist eine Hashfunktion (SHA256, Md5 und BCrypt)?

Die Hashfunktion ist ein Algorithmus, welcher einen Schlüssel oder einen bestimmten Wert in einen eindeutigen, kürzeren Wert „Hash“, umwandelt. Für die Berechnung bzw. Umwandlung gibt es unterschiedliche Algorithmen.

Vielleicht hast du schon einmal etwas von SHA256 und Md5 gehört?

Warum bringt Hashing Geschwindigkeitsvorteile?

Angenommen, wir speichern eine sehr große Anzahl von verschiedenen Elementen unverändert in eine Datenbank. Die Elemente müssten jetzt von einem Suchalgorithmus voneinander unterschieden und ausfindig gemacht werden, damit sie von einem Programm weiterverarbeitet werden können.

Die Hashfunktion kann jedes einzelne Element aus der Datenbank in einem Schlüssel und dann in einen Hashwert umwandeln, welcher die original Datensätze repräsentiert, aber aus einem deutlich kleineren Wert besteht und immer eindeutig zuweisbar ist. Diese Hashwerte werden in einer Datenstruktur (Index) gespeichert.

Die Verarbeitung von Datensätzen und der Suchalgorithmus werden nun weitaus effizienter und performanter arbeiten können, was uns erhebliche Geschwindigkeitsvorteile bei der Verarbeitung von großen Datensätzen bringt.

Der Hash-Algorithmus ist allgegenwärtig

Hashing wird heute in sehr vielen Bereichen eingesetzt und theoretisch kommt jeder Internetbenutzer täglich mit dem Hash-Algorithmus in Berührung, ohne etwas davon zu bemerken.

Sei es bei einem Download von einer Datei, einer beliebigen Webseite oder eine Applikation aus dem Google- oder Apple-Store auf dem Smartphone. Bei der Übertragung von Daten werden häufig Hashfunktionen verwendet, um sicherzustellen, dass die Daten während der Übertragung unbeschädigt und unverändert auf deinem Gerät gespeichert werden.

Auch bei einer Anmeldung auf eine Internetseite (Login) und der damit verbundenen Eingabe von Benutzername und dem dazugehörigen Passwort, kann die Hashfunktion dazu verwendet werden, um sicherzustellen, dass das von dir eingegebene Passwort mit dem gespeicherten Passwort in der Datenbank des Servers übereinstimmt. Dabei wird der resultierende Hashwert mit dem in der Datenbank gespeicherten Hashwert verglichen. Erst, wenn beide Werte miteinander übereinstimmten, wird dir der Zugang ermöglicht.

Aber auch bei Transaktionen z.B. über das Online-Banking oder bei der Verschlüsselung und Abspeicherung von Passwörtern im Browser werden die Daten nicht im Klartext irgendwo in einer Datei abgelegt. Auch hier findet Hashing Anwendung, um die Integrität und die Sicherheit deiner Daten zu gewährleisten. Der Hash-Algorithmus ist in der Informatik allgegenwärtig und macht die digitale Welt überhaupt erst so sicher für uns, wie wir sie heute kennen. Sei es bei der Verschlüsselung, bei Bildung von Prüfsummen für die Datenübertragung oder aus Performance-Gründen.

Hashing Do it Yourself: Wie kann ich einen Hashwert über die PowerShell oder Windows-Terminal erzeugt werden?

Möchtest du ein wenig experimentieren und die Hashfunktion einmal selbst ausprobieren? Dann zeige ich dir, wie du Hashing z.B. über die PowerShell anwenden kannst, um von Daten einen Hashwert zu berechnen. Die PowerShell verfügt für die Bildung von Hash-Werten über ein eigenes Cmdlet, welches wir mit der Definition eines Hash-Algorithmus (SHA256) auf eine Datei anwenden können, um einen eindeutigen Hashwert zu erzeugen.

Schritt 1: Eine Datei für die Verwendung der Hashfunktion erstellen:

Wir erstellen zunächst eine neue Textdatei mit dem einfallsreichen Namen „Geheimwort“. 

Erstelle nun einen neuen Ordner mit dem Namen „Hashing“ auf deinem Laufwerk C: und kopiere die Textdatei in den noch leeren Ordner hinein. 

Öffne die Textdatei mit einem Editor, z.B. WordPad und schreibe einen beliebigen Inhalt hinein. Speichere die Änderungen ab und schließe den Editor wieder.

Hashing mit Beispielen erklärt

Schritt 2: Mit der PowerShell/Windows-Terminal erzeugen wir nun einen Hashwert:

Verwende die PowerShell und navigiere mit dem cd-Befehl in den Ordner, wo die Datei abgespeichert wurde, von der wir einen Hashwert erzeugen möchten:

cd C:\Hashing

Gebe nun den folgenden Befehl in die PowerShell ein, um den Hash-Algorithmus (SHA256) auf die Datei anzuwenden und einen eindeutigen Hashwert zu berechnen:

Get-FileHash -Algorithm SHA256 .\Geheimwort.txt

Jetzt wurde für die Datei mit dem SHA256-Algorithmus ein 256-Bit langer Hashwert erzeugt. Dieser bleibt so lange unverändert und eindeutig identifizierbar, solange die Datei nicht verändert oder in irgendeiner Weise manipuliert worden ist.

Schritt 3: So kann ein Hashwert mit der PowerShell überprüft werden:

Öffne jetzt wieder unsere Textdatei „Geheimwort“ von der wir bereits ein Hashwert erzeugt haben, mit einem Texteditor und verändere einen beliebigen Buchstaben. Speichere die Änderungen ab. Nun überprüfen wir die Integrität unserer Datei. Verwende die PowerShell und gebe den folgenden Befehl in die Kommandozeile ein:

Get-FileHash -Path C:\Hashing\Geheimantwort.txt | Format-List

Ergebnis: Der Hashwert hat sich verändert!

Wie du jetzt sehen kannst, wurde die Datei manipuliert und der Hashwert hat sich verändert. Es gibt keine Möglichkeit mehr, die Prüfsumme der Datei auf den alten Hashwert zurückzusetzen. Solche Maßnahmen werden z.B. von Kopierschutzfunktionen für Software und Computerspiele verwendet. 

Befindest du dich aktuell in der Ausbildung oder im Studium? 

Mit dieser kleinen Präsentation wirst du die Herzen deiner Professoren und Dozenten mit Leichtigkeit erobern! Spiele gerne ein wenig herum und probiere doch einfach mal selbst aus, so als kleine Hausaufgabe für dich rund um das Thema „Hashing“, ob sich der Hashwert beim Kopieren oder der Vervielfältigung einer Datei verändert.

Falls dem nicht so ist, fällt dir eine Möglichkeit ein, wie sich dieses Problem lösen lässt? Deine Antwort findet Platz in den Kommentaren.

Hat dir dieser Beitrag über Hashing, Hash-Algorithmen und der Berechnung von Hashwerten weitergeholfen?

Über dein Follow auf den sozialen Medien würde ich mich sehr freuen. So erfährst du als erstes von neuen Beiträgen auf meinem Blog und unterstützt mich bei meinem Wachstum. Falls du an einem Schritt dieser Anleitung nicht weiterkommst, verwende die Kommentarfunktion und ich werde dir so bald wie möglich mit Rat und Tat zur Seite stehen. Vielen Dank für deinen Besuch.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert