uses IdHash, IdHashMessageDigest; function GetStringMD5(const AInPut: string): string; var MD5: TIdHashMessageDigest5; {$IF CompilerVersion<20.0} Digest: T4x4LongWordRecord; {$IFEND} begin MD5 := TIdHashMessageDigest5.Create; try {$IF CompilerVersion>20.0} // Delphi 2009 + Result := LowerCase(MD5.HashStringAsHex(AInPut)); {$ELSE} Digest := MD5.HashValue(AInPut); Result := LowerCase(MD5.AsHex(Digest)); {$IFEND} finally MD5.Free; end; end;