AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

md5 hash einer Datei Lazarus

Ein Thema von 1234567890987654321 · begonnen am 27. Jul 2011 · letzter Beitrag vom 28. Jul 2011
 
CCRDude

Registriert seit: 9. Jun 2011
678 Beiträge
 
FreePascal / Lazarus
 
#12

AW: md5 hash einer Datei Lazarus

  Alt 28. Jul 2011, 12:30
Hmmm... das hat mich doch jetzt nicht losgelassen, daher habe ich mal angefangen zu testen...

Vorab: der CryptAcquireContext-Part ist sauteuer. Wer nur einen Hash braucht, sollte eine andere Methode verwenden; wer mehrere Hashes braucht, sollte den Provider nur einmal darüber acquirieren (ich habe das in den initialization/finalization-Teil der Test-Unit dafür gepackt).

Meine Ergebnisse folgen, und obwohl ich bisher nur kurze und mittlere RawByteString untersucht habe und gar nicht auf Dateien gegangen bin, sieht man schon unterschiedliche Ergebnisse für unterschiedliche Anwendungsfälle.

WinCrypt ist bei größeren Datenmengen tatsächlich sehr gut, bei sehr kleinen dagegen das genaue Gegenteil. DEC ist das Gegenteil zu WinCrypt - bei kleinen Mengen um Längen besser, bei großen langsamer. advapi32.dll schlägt sich ebenfalls sehr gut (Windows-intern evtl. gar dasselbe wie WinCrypt?). Der FPC-Code bleibt zurück, ist aber in einer ähnlichen Kategorie wie DCrypt.

Meine Konsequenz? Danke für die Anregungen hier, ich werde den Test mal auf diverse Dateien ausweiten (sowohl per Stream als auch File Mapping) und daraus sicherlich etwas gewinnen

Code:
= MD5 (Message Digest 5) =
== String tests ==
=== String test "short text" ===
Test line:   Hallo Welt, Hello World!
Test length: 24
Repeat count: 500000

           RFC 1321 by Matthias Fichtner: 00:01.559 (93421b70ad52f2495be431fa727179c1)
            Free Pascal development team: 00:01.214 (93421b70ad52f2495be431fa727179c1)
                      Windows (WinCrypt): 00:02.565 (93421b70ad52f2495be431fa727179c1)
                Hagen Reddmann (DEC 5.2): 00:00.490 (93421b70ad52f2495be431fa727179c1)
            DCPcrypt v2.0 (David Barton): 00:01.221 (93421b70ad52f2495be431fa727179c1)

=== String test "random long text" ===
Test line:   (0*!!!4%(0)(1(5 2 "$($&*+32()' ',07 4...
Test length: 99999
Repeat count: 1000

           RFC 1321 by Matthias Fichtner: 00:02.317 (db60c7fab72be4c6887b6160df41e45f)
            Free Pascal development team: 00:01.326 (db60c7fab72be4c6887b6160df41e45f)
                      Windows (WinCrypt): 00:00.215 (db60c7fab72be4c6887b6160df41e45f)
                Hagen Reddmann (DEC 5.2): 00:00.180 (db60c7fab72be4c6887b6160df41e45f)
            DCPcrypt v2.0 (David Barton): 00:00.986 (db60c7fab72be4c6887b6160df41e45f)

= SHA-1 (Secure Hash Algorithm 1) =
== String tests ==
=== String test "short text" ===
Test line:   Hallo Welt, Hello World!
Test length: 24
Repeat count: 500000

                             Dave Barton: 00:01.602 (017c54b20080d80e03b1b80ecbdf68a86665e644)
                  Windows (advapi32.dll): 00:00.877 (017c54b20080d80e03b1b80ecbdf68a86665e644)
                      Windows (WinCrypt): 00:02.253 (017c54b20080d80e03b1b80ecbdf68a86665e644)
                Hagen Reddmann (DEC 5.2): 00:00.792 (017c54b20080d80e03b1b80ecbdf68a86665e644)
            DCPcrypt v2.0 (David Barton): 00:01.621 (017c54b20080d80e03b1b80ecbdf68a86665e644)

=== String test "random long text" ===
Test line:   2621%1-+,2(*,*#2*+/0#*/2(*0,'+0%#2%+"...
Test length: 99999
Repeat count: 1000

                             Dave Barton: 00:02.602 (28f429f7e4ab4e631ac5cad469ce8d6056336015)
                  Windows (advapi32.dll): 00:00.264 (28f429f7e4ab4e631ac5cad469ce8d6056336015)
                      Windows (WinCrypt): 00:00.260 (28f429f7e4ab4e631ac5cad469ce8d6056336015)
                Hagen Reddmann (DEC 5.2): 00:00.972 (28f429f7e4ab4e631ac5cad469ce8d6056336015)
            DCPcrypt v2.0 (David Barton): 00:01.638 (28f429f7e4ab4e631ac5cad469ce8d6056336015)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:33 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 by Thomas Breitkreuz