Ich glaube ich werde das niemals hinbekommen
(Danke Sir Rufo, deine Schläge auf den Hinterkopf haben geholfen). Einen String hashen, funktioniert nun sowohl mit 32-, als auch mit 64-Bit und die Resultate sind identisch.
Jedoch will das Erzeugen eines Hashs für eine Datei noch immer nicht (unterschiedliche resultate 32-Bit <> 64-bit):
Delphi-Quellcode:
function MD5File(const s: string): string;
var
MD5: TIdHashMessageDigest5;
fs: TFileStream;
begin
Result:='';
if FileExists(s) then
begin
MD5 := TIdHashMessageDigest5.Create;
fs := TFileStream.Create(s, fmOpenRead or fmShareDenyWrite);
try
Result := MD5.HashStreamAsHex(fs);
finally
fs.Free;
MD5.Free;
end;
end;
end;
Die einzige MD5-Implementieren, die ich bisher gesehen habe, die auch den korrekten Hash für eine Datei erzeugt, ist die von Assarbad:
assarbad.net/en/stuff/!export/md5.zip (leider aber nicht mehr lauffähig unter neueren Delphi Versionen)