DivisionsrestmethodeDie Divisionsrestmethode (siehe auch Modulo) liefert eine Hashfunktion. Die Funktion lautet: ist die Größe der Hashtabelle. Eigenschaften
Für die meisten Eingabedaten ist zum Beispiel die Wahl einer Zweierpotenz für , also , ungeeignet, da dies der Extraktion der -niedrigstwertigen Bits von entspricht, so dass alle höherwertigen Bits bei der Hash-Berechnung ignoriert werden. Für praxisrelevante Anwendungen liefert die Wahl einer Primzahl für , welche keine Mersenne-Primzahl ist, eine geringe Anzahl von zu erwartenden Kollisionen bei vielen Eingabedatenverteilungen.[1] Hashing von ZeichenkettenZeichenketten können mit der Divisionsmethode gehasht werden, indem sie in ganze Zahlen zur Basis umgewandelt werden, wobei die Zeichensatzgröße bezeichnet. Um Integer-Überläufe zu vermeiden, kann für die Berechnung des Hashwertes bei Schlüsseln das Horner-Schema angewendet werden. Das folgende Beispiel zeigt eine Berechnung eines Hashwertes für eine 7-Bit-ASCII-Zeichenkette .
Somit kann als Zwischenergebnis maximal auftreten. Dargestellt in Pseudocode: Parameter: natürliche Zahlen i, h=0; Feld s for i = 0 to i < länge_von(s) h = (h * 128 + s[i]) mod m; Ergebnis: h. Die Multiplikation mit Literatur
Einzelnachweise
|
Portal di Ensiklopedia Dunia