Einzelnen Beitrag anzeigen

blackfin
(Gast)

n/a Beiträge
 
#3

AW: String vergleichen mit Hash?

  Alt 27. Jun 2011, 09:18
Meiner Meinung nach bieten sich hier die Hash-Funktionen MD5, SHA1 / SHAxxx an. MD5 ist der gebräuchlichste für so etwas.
Ob XE einen davon an Bord hat, weiss ich nicht, da ich XE nicht habe, allerdings gibt es im Netz Single-Units für die besagten Algorithmen, ohne dass man eine Komponente installieren müsste.

Edit:
Oder du nimmst eine einfache Hash-Funktion wie den ELF-Hash, der unter Linux-Systemen beispielsweise für so etwas verwendet wird.
(wenn es nicht um kryptographische Sicherheit geht, wie Deep-Sea bereits gesagt hat, sondern nur ums Vergleichen):

Delphi-Quellcode:
function ElfHash(const Value: string): Integer;
var
  i, x: Integer;
begin
  Result := 0;
  for i := 1 to Length(Value) do
  begin
    Result := (Result shl 4) + Ord(Value[i]);
    x := Result and $F0000000;
    if (x <> 0) then
      Result := Result xor (x shr 24);
    Result := Result and (not x);
  end;
end;

Geändert von blackfin (27. Jun 2011 um 09:28 Uhr)
  Mit Zitat antworten Zitat