Für die Lösung eines Problems benötige ich demnächst vermutlich etwas wie eine eindeutige ID, welche ich aus einem gegebenem String berechnen kann, der ohnehin schon eindeutig ist und nur einmal vorkommen kann. Die ID benötige ich aus diversen Gründen zusätzlich.
Die ID sollte wenn möglich nicht so lang sein wie MD5. Welche Möglichkeiten bleiben mir da noch? Mir stehen dafür unter anderem die Wolfgang Ehrhardt Komponenten zur Verfügung.
Ich habe gerade CRC32 getestet. Aber ist das eindeutig genug?
Delphi-Quellcode:
function CRC32String(const Text: string): string;
var
i: Integer;
TextLen: Word;
buf: array [0 .. 4095] of Byte;
CRC: LongInt;
ctx: TCRC_ctx;
begin
TextLen := Length(Text);
for i := 1 to TextLen do
buf[i - 1] := Byte(Text[i]);
cm_Create(CRC32_Zip, nil, ctx);
cm_Full(ctx, CRC, @buf, TextLen);
Result := IntToHex(CRC, 8);
end;