MSCH hat folgendes geschrieben: |
Ein Hash ist einmalig, d.h. ein Hash-wert kann nur einer Zeichenkette zugeordnet werden und umgekehrt. |
Nein. Wenn das so wäre, könnte man Daten auch wieder "enthashen". Außerdem sind Hash-Werte oft kürzer als die Daten, auf die der entsprechende Algorithmus angewandt wurde, deshalb speichern diese weniger Informationen ab. Ansonsten wären hashs ja eine Komprimiermethode.
Hashs sind nur Werte, die, je nach Anwendungsfall, genügend eindeutig sind. Es gibt schon Daten, die den glkeichen Hashwert erzuegen, aber sofern das nur selten vorkommt, ist das OK. Es kommt naürlich auch drauf an, was man mit einem Hash machen will. Ein Algorithmus für eine Hash-Table muss nicht so gut (d.h. so nahe wie möglich an der Eindeutigkeit) sein wie z.B. ein MD5-Hashwert, der oft als Verschlüsselung von Passwörtern im Web-Bereich eingesetzt wird.
Ein Beispiel für eine einfache und schlecht Hashfunktion wäre, den ersten Buchstaben eines Strings mit 4 zu multiplizieren, den zweiten mit 3, den dritten mit 2 und den vierten mit 1 und das dann alles zusammenaddieren.