DelphiによるMD5高性能アルゴリズムの実装
プロセッサアーキテクチャ:x86、x64
サポートプラットフォーム:Win32、Win64
互換性:httpsおよびopenssl
ファイルサポート:4Gを超える
Maxim MasiutinによるFASTMD5アセンブラーアルゴリズム
https://github.com/maximmasiutin/md5_transform-x64
この64ビットバージョンの主な利点は、64バイトのハッシュメッセージを8つの64ビットレジスタ(RBP、R8、R9、R10、R11、R12、R13、R14)にロードして、過度のメモリ負荷操作がルーチンを帯びないことを避けることです。
64ビットレジスタ(ビット32-63)のより高いビットの32ビット値ストアで操作するには、32で「ROR」を使用します。 8マクロ変数(M1-M8)を使用して、レジスタがROR'edであるかどうかの記録または正しい状態を保持するために使用されます。
また、2つのシーケンタル追加(uselea = 1)の代わりにLEA命令を使用する機能もありますが、Skylakeプロセッサでは遅くなります。また、最適化参照のIntelは、Atom Processorsでより遅いため、2つの追加の置換としてLeaの私たちを思いとどまらせます。
MD5_TRANSFORM-X64は二重ライセンスの下でリリースされ、Mozilla Public License 2.0(MPL 2.1、https://www.mozilla.org/en-us/mpl/2.0/から入手可能)またはGNUレッサー一般公開ライセンスバージョン3から入手できます。 https://www.gnu.org/licenses/lgpl.html)。
MD5_TRANSFORM-X64は、Peter Sawatzkiによる次のコードに基づいています。
Peter Sawatzkiによる元の通知が続きます。
FastMD5(@buff[ 0 ], length(buff));
[email protected]によるDelphi実装
https://github.com/passbyyou888/fastmd5/
2018-1-27