Alternative Hash Funktion für MD4, MD5 & SHA-1

  • Alternative Hash Funktion für MD4, MD5 & SHA-1
    (MSDN stellt leider nicht sehr viel Informationen zu diesen Funktionen zur Verfügung)

    Wie hier (MD5 Hasher optimieren | 0xf Level 20) schon beschrieben gibt es ja neben _CryptHashData() noch eine Alternative einen Hashstring zu generieren.
    Ich habe das mal für MD4 und SHA erweitert. Es lässt sich (leicht umgeschrieben) auch ein File-Hash mit diesen Funktionen erstellen (leider siegt hier die Faulheit :D)

    2 Mal editiert, zuletzt von kaesereibe (12. Oktober 2015 um 14:47)

  • Gute Arbeit. :) Ist sowohl auf dem Arbeitsrechner als auch auf dem zu Hause (über 500.000 Durchläufe) deutlich schneller und momentan die Schnellste (die für mich auch verständlich funktioniert) auf beiden Systemen. :) Nach dem angepassten Benchmark-Script (Anzahl der Läufe erhöht) von AspirinJunkie:

    Code
    _Crypt_HashData:    0.105 ms
                 crypt-api manuell:    0.058 ms
                              _MD5:    0.023 ms
               advapi inkrementell:    0.022 ms

    Es ergibt sich demnach - auf diesen Systemen (i5 und i7) kein nennenswerter Unterschied zwischen der Methode _MD5 und advapi inkrementell. Benchmark von zu Hause (über 2.500.000.000 Läufe) reiche ich nach, wenn ich wieder zu Hause am Rechner bin.

    Es gibt Tage, da trete ich nicht ins Fettnäpfchen. Ich falle in die Friteuse.

  • Die inkrementelle Methode ist nur eine Abwandlung für den Sonderfall, dass ein zusammengesetztes Wort gehasht werden soll dessen Anfang über viele Iterationen hinweg konstant ist.
    Steht also nicht wirklich in Konkurrenz zur hier vorgestellten _MD5-Funktion.
    Bei meinen Tests (500.000 Durchläufe) konnte ich durch die inkrementelle Berechnung etwa 20%-30% noch rausholen:

  • Sorry - gestern größeres Projekt gehabt.

    Es gibt Tage, da trete ich nicht ins Fettnäpfchen. Ich falle in die Friteuse.

  • Super Tipp :thumbup:

    Ich hab den Code noch ein bisschen geändert, das hat bei mir nochmal, ein paar Tausend aufrufe die Sekunde mehr gebracht :D

    Einmal editiert, zuletzt von Taz77 (28. März 2016 um 22:12)