使用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