Es soll ein Einweg-Hash werden
Dann nimm doch
MD5, das ist für deine Zwecke wohl noch ausreichend sicher.
https://raw.github.com/sx2008/Delphi...MD5windows.pas
Delphi-Quellcode:
// Anwendungsbeispiel
var
text, hash : string;
begin
text := 'das ist irgendein Text';
hash := MD5String(text);
// der hash enthält 16 Bytes
Du kannst nun die 16 Bytes in einen 32 Zeichen Hexstring umwandeln.
Wenn es unbedingt eine Zahl sein soll, dann kannst du einfach auch die ersten 4 Bytes kopieren
Delphi-Quellcode:
var
pruefzahl : integer;
...
Move(hash[1], pruefzahl, sizeof(Integer);
Natürlich ist ein 16-Byte Hash besser als ein 4-Byte-Hash, aber für geringe Ansprüche immer noch ausreichend.