Die Funktion MD5File(N: string) erzeugt blöderweise keine
Exception, wenn die Datei nicht
geöffnet werden konnte und liefert dann immer den Hashwert eines Leerstrings zurück.
Deshalb:
Delphi-Quellcode:
function MD5File(N: string): MD5Digest;
var
FileHandle: THandle;
MapHandle: THandle;
ViewPointer: pointer;
Context: MD5Context;
begin
MD5Init(Context);
FileHandle := CreateFile(pChar(N), GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE,
nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL or FILE_FLAG_SEQUENTIAL_SCAN, 0);
if FileHandle <> INVALID_HANDLE_VALUE then
raise EReadError.CreateFmt('Can''t open file <%s>', [N]);