Implementierung des MD5 -Hochleistungsalgorithmus mit Delphi
Prozessorarchitektur: x86, x64
Unterstützt Plattform: Win32, Win64
kompatibel: HTTPS und OpenSSL
Dateiunterstützung: größer als 4g
Fastmd5 Assembleralgorithmus von Maxim Masiutin
https://github.com/maximmasiutin/md5_transform-x64
Der Hauptvorteil dieser 64-Bit-Version besteht darin, dass sie 64 Bytes von Hashed-Nachricht in 8 64-Bit-Register (RBP, R8, R9, R10, R11, R12, R13, R14) lädt, um übermäßige Speicherlastvorgänge durch die Routine zu vermeiden.
Zum Betrieb mit 32-Bit-Werten in höheren Bits eines 64-Bit-Registers (Bits 32-63) "ROR" um 32 verwendet; 8 Makrovariablen (M1-M8) werden verwendet, um die Aufzeichnung oder den Korrentzustand zu behalten, ob das Register ror geschaltet wurde oder nicht.
Es hat auch die Fähigkeit, die LEA -Anweisung anstelle von zwei Folgedaten zu verwenden (Uselea = 1), aber es ist langsamer bei Skylake -Prozessoren. Auch Intel in der Optimierungsreferenz maual enthält uns von Lea als Ersatz von zwei hinzugefügten, da es bei den Atomprozessoren langsamer ist.
MD5_TRANSFORM-X64 wird unter einer Dual-Lizenz veröffentlicht, und Sie können es entweder unter der Mozilla Public Lizenz 2.0 (MPL 2.1, erhältlich unter https://www.mozilla.org/en-us/mpl/2.0/) oder der GNU Lesser-Public-Lizenz, datiert 29 Juni 2007 (lgpl/2) verwenden (lgpl/2.0/ https://www.gnu.org/licenses/lgpl.html).
MD5_Transform-X64 basiert auf dem folgenden Code von Peter Sawatzki.
Der ursprüngliche Hinweis von Peter Sawatzki folgt.
FastMD5(@buff[ 0 ], length(buff));
Delphi -Implementierung von [email protected]
https://github.com/passbyyou888/fastmd5/
2018-1-27