使用Delphi實施MD5高性能算法
處理器體系結構:X86,X64
支持平台:Win32,Win64
兼容:https和openssl
文件支持:大於4G
FastMD5彙編算法由Maxim Masiutin製作
https://github.com/maximmasiutin/md5_transform-x64
該64位版本的主要優點是,它在開始時將64個字節的消息加載到8個64位寄存器中(RBP,R8,R9,R10,R11,R12,R13,R14),以避免通過例行程序進行過多的內存負載操作。
用32位值存儲在64位寄存器(位32-63)的較高位中使用“ ROR”; 8個宏變量(M1-M8)用於保留記錄或相關狀態,以了解是否已被遺忘。
它還具有使用LEA指令而不是兩個序列添加的能力(Uncomment uselea = 1),但在Skylake處理器上的功能較慢。同樣,在優化參考中,英特爾將我們拒絕LEA作為替代兩個添加的替代,因為它在原子處理器上較慢。
MD5_transform-X64根據雙重許可發布,您可以選擇根據Mozilla公共許可證2.0(MPL 2.1,可從https://www.mozilla.org/en-us/mpl/2.0/獲得),或者少於GNU公共許可證版本3,201007年6月29日(LG 29年6月29日),LGS,LG 30,LGS,LG 30,LG,LG,LG,則可以使用它。 https://www.gnu.org/licenses/lgpl.html)。
MD5_transform-X64基於Peter Sawatzki的以下代碼。
彼得·薩茨基(Peter Sawatzki)的原始通知隨之而來。
FastMD5(@buff[ 0 ], length(buff));
delphi實施由[email protected]
https://github.com/passbyyou888/fastmd5/
2018-1-27