Dysponuje ktoś jakimś jak najprostszym hashowaniem? Potrzebuję kodzik, które zahashuje mi stringa do postaci liczby całkowitej. Sam nie potrafię tego napisać, a na googlach nigdzie nie mogę znaleźć.
Znalazłem jedynie taki kodzik hashujący hasła gg, ale niestety, hashe mogą sie powtarzać, a mi zależy na unikalności. po prostu, żebym mógł porównywać stringi za pomocą ich hashy potem.
Z góry dzięki za pomoc.
function Hash(S: string): Cardinal;
var
x, y, z, i : Cardinal;
ss: String;
begin
y := Length(S);
x := 0;
for i := 1 to Length(S) do begin
x := (x and $ffffff00) or Ord(S[i]);
y := y xor x;
Inc(y, x);
x := x shl 8;
y := y xor x;
x := x shl 8;
Dec(y, x);
x := x shl 8;
y := y xor x;
z := y and $1f;
y := (y shl z) or (y shr (32 - z));
end;
Hash := y;
end;