![]() |
AW: MD5-Prüfroutine für Delphi 10.2
Zitat:
|
AW: MD5-Prüfroutine für Delphi 10.2
Ja okay. Wenn man nicht selbst die Downloads anbietet und der Anbieter nur einen MD5 Hash liefert dann nehme ich alles zurück.
Dann bringts einem natürlich nichts irgendeinen anderen Hash auszurechnen. |
AW: MD5-Prüfroutine für Delphi 10.2
Mich haben, wenn ich ihn so nennen darf, Wolfgang's Units noch nie enttäuscht.
Sie arbeiten schnell, zuverlässig und bringen keinen unnötigen Müll mit. |
AW: MD5-Prüfroutine für Delphi 10.2
Zitat:
|
AW: MD5-Prüfroutine für Delphi 10.2
Zitat:
Delphi-Quellcode:
Und als Kommentar in Hash.HashFile: {-Calculate hash digest of file, buf: buffer with at least bsize bytes}
procedure MD5File(const fname: Str255; var Digest: TMD5Digest; var buf; bsize: word; var Err: word);
{-MD5 of file, buf: buffer with at least bsize bytes} Das Ergebnis Digest ist ein Var-Parameter! Außerdem hast Du noch einen Error-Code Err, falls ein Fehler auftritt. Was willst Du mehr? Edit: Hier das ganze als Komplett-Programm (diesmal mit 32KB-Puffer)
Delphi-Quellcode:
und noch mal das 512MB-Testfile
{$Apptype console}
uses hash, md5, mem_util; const BSIZE = $8000; var buf: array[0..BSIZE-1] of byte; Digest: TMD5Digest; Err: word; begin if paramcount>0 then begin MD5File(paramstr(1),Digest, buf, sizeof(buf), Err); if Err<>0 then writeln('Error ', Err) else writeln('MD5 = ', HexStr(@Digest, sizeof(Digest))); end else writeln('Usage: MD5F <file>'); end.
Code:
D:\Work\CRC_HASH>timethis md5f.exe 512MB_A
TimeThis : Command Line : md5f.exe 512MB_A TimeThis : Start Time : Wed Nov 29 10:15:22 2017 MD5 = 31e4d9c6d74cd592b78f77f72965d6ab TimeThis : Command Line : md5f.exe 512MB_A TimeThis : Start Time : Wed Nov 29 10:15:22 2017 TimeThis : End Time : Wed Nov 29 10:15:24 2017 TimeThis : Elapsed Time : 00:00:02.610 |
AW: MD5-Prüfroutine für Delphi 10.2
Zitat:
Ok ich sehe, kein Stream mehr. Soweit ich das gerade sehe, kann MD5.MD5File aber nur Dateien mit einer maximalen Dateinamenlänge von 255 entgegennehmen. |
AW: MD5-Prüfroutine für Delphi 10.2
Zitat:
Zitat:
|
AW: MD5-Prüfroutine für Delphi 10.2
Hat das den alleinigen Grund MAX_PATH nicht zu übersteigen?
Das wäre doch mit \\?\ gelöst. |
AW: MD5-Prüfroutine für Delphi 10.2
Zitat:
Aber ich kann es gerne in die übernächste Version einbauen als
Delphi-Quellcode:
Die nächste Version ist unterwegs (heute oder morgen je nach Ablenkung) und bringt wesentlich beschleunigte Blake2B- und Blake2S-Routinen, Blake2B für alle Compiler von TP5 bis Tokyo.
procedure HashFile({$ifdef CONST} const {$endif} fname: String; PHash: PHashDesc;
var Digest: THashDigest; var buf; bsize: word; var Err: word); {-Calculate hash digest of file, buf: buffer with at least bsize bytes} |
AW: MD5-Prüfroutine für Delphi 10.2
Zitat:
Das \\?\ hänge jedenfalls ich immer vor meine Pfade. Es kommt zwar nicht so oft vor, dass ein Pfad MAX_PATH überschreitet, aber es kann schon vorkommen. P.S. kannst du ebenfalls bestätigen, dass Embarcaderos Fix gar kein Fix war? Denn wenn hash in den uses steht, wird nach System.Hash gesucht und nicht nach deiner Hash-Unit. Angeblich wurde das von Embarcadero ja behoben ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz