Mit dem
DEC
Delphi-Quellcode:
function CalcHashs(const Strings: TStrings): String;
begin
with THash_MD4.Create do
try
Init;
for I := 0 to Strings.Count -1 do
Calc(PChar(Strings[I])^, Length(Strings[I]));
Done;
Result := StrToFormat(DigestKey, DigestKeySize, fmtHEX);
finally
Free;
end;
end;
Du musst also NICHT umständlich alle Hashwerte in einem String zusammenfassen, sondern es reicht einHash Object einmalig zu initialisieren, danach alle Hashs sequentiuell zu übergeben, und am Ende per .Done die Aktion zu beenden. Dies ist wesentlich effizienter und ergibt am Ende den gleichen Hash über alle Werte als wenn man sie in einem String zusammengefasst hätte.
Die Hashs über deine Dateien kannste im
DEC so berechenen:
Result := THash_MD4.CalcFile('c:\deinedatei.bin', nil, fmtHEX);
Gruß Hagen