Einzelnen Beitrag anzeigen

gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#13

AW: MD5-Prüfroutine für Delphi 10.2

  Alt 26. Nov 2017, 19:35
Um das zu kompletieren. Gibt es jemanden der eine funktionierende Implementierung (Datei / Stream hashen) mit den WE-Units fertig bekommt?
Also ohne diese WE units zu kennen, müsste es so gehen :
Nein, nicht ganz. Hier ein Konsol-Prgramm, das paramstr(1) hasht.
Delphi-Quellcode:
program md5file;
{$apptype console}

uses
  system.classes,
  hash, md5, mem_util;

function MD5F(const AFileName: String): string;
var
 Context: THashContext;
 Hash: TMD5Digest;
 aStream : TMemoryStream;
begin
 aStream := TMemoryStream.Create;
 aStream.LoadFromFile(AFileName);
 MD5Init(Context);
 MD5UpdateXL(Context, aStream.Memory, aStream.Size);
 MD5Final(Context, Hash);
 Result := string(Mem_Util.HexStr(@Hash, SizeOf(Hash)));
 aStream.Free;
end;

begin
  writeln(MD5F(paramstr(1)));
end.
Und das Ergebnis für ein File mit 512 MB nur 'a':
Code:
D:\Work\CRC_HASH>timethis md5file 512MB_A

TimeThis : Command Line : md5file 512MB_A
TimeThis :   Start Time : Sun Nov 26 20:32:01 2017

31e4d9c6d74cd592b78f77f72965d6ab

TimeThis : Command Line : md5file 512MB_A
TimeThis :   Start Time : Sun Nov 26 20:32:01 2017
TimeThis :     End Time : Sun Nov 26 20:32:04 2017
TimeThis : Elapsed Time : 00:00:02.840

Geändert von gammatester (26. Nov 2017 um 19:38 Uhr)
  Mit Zitat antworten Zitat