Guten Tag.
Ich habe mir das jetzt mal bei Wikipedia (Hashfunktion) durchgelesen, aber verstehe es ehrlich gesagt nicht so richtig. Kann mir jemand sagen, wie ich zum Beispiel selber eine GANZ einfache Hashfunktion selber basteln könnte?
GANZ einfach? Du addierst alle gegebenen Bytes. Fertig.
Und wie ich diese dann auch wieder zurückrechnen könnte in ihren ursprünglichen Wert?
Früher™, als alles noch besser war, hießen die Dinger Prüfsummen, und Hasch haben wir geraucht. Ich erwähne das, weil die Funktion durch einen deutschen Begriff für dich vielleicht etwas verständlicher wird. Aus der Summe 23 kannst du auch nicht herausfinden, ob sie aus 20 + 3 oder 12 + 11 entstanden ist. Du weisst nur, dass jemand schummelt, wenn er dir zur Summe 23 die Rechnung 2 + 3 als Ausgang präsentiert.
Mit CRC, MD, SHA & Co. ist es das Gleiche, jedoch ergibt hier auch die kleinste Änderung an den Ausgangsdaten eine garantierte Änderung der Prüfsumme.
Im Bereich der Kryptographie betrifft dies nicht nur einfach von vornherein unterschiedliche Datensätze (20 und 3 sollte eine andere Prüfsumme ergeben als 12 und 11) oder das Erkennen, teilweise auch das Beheben von Übertragungsfehlern, es muss vor allem sichergestellt sein, dass aus einer gegebenen Prüfsumme kein passendes "Original" (lies: eine Fälschung, die aber die gegebene Prüfsumme ergibt) erstellt werden kann.
Mein Eingangsbeispiel einer wortwörtlichen Prüfsumme taugt in dieser Hinsicht überhaupt nicht. Ist das Original "20 und 3", die Prüfsumme 23, könne ein pöser Pube mein Original in "19 und 3 und 1" ändern, ohne dass ich etwas merken täte – die Prüfsumme stimmt ja. Und schon habe ich zu den 20 Ostereiern und 3 Schokoladenhasen noch eine Waschmaschine gekauft.