Hashing

Hashing ist ein Begriff in der Informatik. Er beschreibt das irreversible Verändern eines Datensatzes in einen komplizierten Code, der nicht zu verstehen ist. Hash-Codes sind unabhängig von der Größe des Datensatzes immer gleich lang und sehr komplex. Wenn man nur einen Buchstaben ändert, entsteht ein komplett anderer Wert. Der Code wird durch mathematische Kryptografie abgeleitet.

Hashing ist ein bedeutender Begriff in der Cyber-Security. Passwörter und andere wichtige Zertifikate werden in einen Hash-Code umgewandelt und so gespeichert. Sobald das Passwort in einen Hash verwandelt wurde, ist es gesichert. Hash-Funktionen sind irreversibel, das heißt, sie können im Normalfall nicht rückgängig gemacht werden und es gibt so gut wie keinen Wert doppelt.

Es gibt verschiedene Hash-Funktionen. MD5 erzeugt einen 128-Bit-Hashwert, ist aber als unsicher bekannt. SHA-1 erzeugt einen 160-Bit-Hashwert und gilt ebenfalls als unsicher. SHA-256 aus der SHA-2-Familie erzeugt einen 256-Bit-Hashwert und gilt derzeit als sicher.

Unsicher ist eine Hash-Funktion, wenn sie zu Kollisionen neigt. Eine Kollision bezeichnet den Zusammenstoß zweier Werte, die dann gleich sind. Das sollte niemals passieren, und deswegen zeichnet sich eine gute Hash-Funktion durch ihre Kollisionsresistenz aus. Je weniger Kollisionen, desto besser.

Das Wichtigste an einer Hash-Funktion ist die “Einwegfunktion”. Das bedeutet, man kann aus dem neu generierten Hash unter keinen mathematischen Bedingungen den ursprünglichen Wert wiederherstellen. Diese Einwegfunktion ist essenziell für die Sicherheit deiner Daten.

Sobald man aus dem Hash den Ursprungswert berechnen kann, handelt es sich um eine Art “Verschlüsselung”, aber niemals um einen Hash.

Jetzt fragt ihr euch bestimmt: Warum sollte mich das interessieren?
Es gibt eine ganz plausible Antwort.

Wenn du im Internet surfst und auf Websites unterwegs bist, gibst du oft ein Passwort und eine E-Mail-Adresse an. Sollte ein Datenleck entstehen und ein Dritter, zum Beispiel ein “Hacker”, darauf zugreifen, sind deine Daten gefährdet. Er könnte die Kombination aus deinem Passwort und der E-Mail-Adresse auf anderen Websites verwenden, um in deine Benutzerkonten einzudringen, z.B. Google Mail, Gmail etc.

Um dies zu verhindern, ist es am besten, die Passwörter nicht im Klartext in deiner Datenbank zu speichern, sondern nur deren Hash. Beim Einloggen in der Website wird dann nicht dein Passwort überprüft, sondern nur der Hash.

Da Hashes nicht zurückgerechnet werden können, hat der Hacker nicht dein Passwort, sondern nur den Hash. Der einzige Weg, dein Passwort zu finden, ist, jedes zufällige Passwort zu hashen und dann den Hash des Passworts in der Datenbank abzugleichen.

Aus diesem Grund ist es viel sicherer, ein langes, zufälliges Passwort zu wählen. Ein Hacker würde viel länger brauchen, um auf ein Passwort wie “dajaHNDiAJWHe(/=QTR&/!”§GTR(ATZGDSA(/WDH1461dQAGWDuzA” zu kommen, als auf “123Passwort”. Ich werde zum Hacken von Passwörtern noch eine andere Seite schreiben.

Eine andere Art des Hashing ist das sogenannte “Blockchain”. Das ist übrigens der Grund, warum Kryptowährung “Krypto” im Namen hat.

Der Inhalt der Blockchain ist nicht verschlüsselt, sondern es werden Hashes benutzt, um die einzelnen Blöcke zu verketten.

Jeder Block in der Blockchain enthält den Hash vom jeweils vorherigen Block. Wenn man also die Hashes manipulieren will, muss man alle Hashes der nachfolgenden Blöcke ebenfalls manipulieren.

Scroll to Top