Hashing
Hashing
Das Hashing ist ein Verfahren, welches jedem Text eine eindeutige Signatur zuweist. Als Beispiel für ein Hashverfahren nehme ich ein „Selbstgebautes“. Im echten Leben ist es natürlich nicht ganz so einfach. Wir schreiben einen Text „Hallo“, jetzt schreiben wir von jedem Buchstaben den Index auf. A ist der erste Buchstabe des Alphabets und hat daher den Index 1, B hat den Index 2 usw. Z hat die 26.
So ergibt sich für unser Beispiel H=8,a=1,l=12,l=12,o=15, Hallo ist in Zahlen also 8 1 12 12 15. Nun multiplizieren wir alle Indizies, also nehmen alle Buchstaben mal. 8*1*12*12*15 = 17280. „Hallo“ hat also die Signatur 17280. „Hallu“ hätte schon eine ganz andere Signatur, obwohl nur ein Buchstabe geändert ist, nämlich 8*1*12*12*21 = 24192.
Das ist recht nützlich. Wenn ich jemandem eine Nachricht schicke und ihm vorher sage, dass die Signatur 17280 ist, eine Kontrolle aber anzeigt, dass der Text die Signatur 24192 hat, könnte es sein, dass ein Angreifer den Text verändert hat.
Wie gesagt, meine Methode ist nicht praxistauglich, da „Hallo“ und „Ollah“ beispielsweise dieselbe Signatur haben. Andererseits zeigt dies auch das Problem beim Hashing. Wünscheswert wäre es, dass jeder Text eine andere Signatur hat. Das lässt sich aber schwer bis gar nicht realisieren.
Es gibt unterschiedliche Hashfunktionen, hier ein paar Beispielwerte unterschiedlicher Hashfunktionen für den Text "hallo":
= 59 8D 4C 20 04 61 B8 15 22 A3 32 85 65 C2 5F 7C |