'lo guys!
Jeg forsøger at lave et program der kan udregne MD5 værdien af filer. Det er sådan set også lykkedes mig, men jeg har erfaret at det tager godt og vel 10 minutter at udregne MD5 værdien for en 2GB-fil.
Funktionen jeg bruger er:
- uses IdHashMessageDigest, idHash;
-
- //returns MD5 has for a file
- function MD5(const fileName : string) : string;
- var
- idmd5 : TIdHashMessageDigest5;
- fs : TFileStream;
- hash : T4x4LongWordRecord;
- begin
- idmd5 := TIdHashMessageDigest5.Create;
- fs := TFileStream.Create(fileName, fmOpenRead OR fmShareDenyWrite) ;
- try
- result := idmd5.AsHex(idmd5.HashValue(fs)) ;
- finally
- fs.Free;
- idmd5.Free;
- end;
- end;
Jeg har læst mig frem til, at det skulle have noget med INDY at gøre, at det tager uendelig tid at udregne. Kan det lade sig gøre for Delphi at udregne en MD5 værdi, også gerne med en mulighed for en progressbar, der kan fortælle hvor langt man er nået?
På forhånd tak,
Brian