Implementasi Algoritma Kinerja Tinggi MD5 dengan Delphi
Arsitektur prosesor: x86, x64
Platform Dukungan: Win32, Win64
Kompatibel: https dan openssl
Dukungan file: lebih dari 4G
Algoritma Assembler FastMD5 oleh Maxim Masiutin
https://github.com/maximmasiutin/md5_transform-x64
Keuntungan utama dari versi 64-bit ini adalah bahwa ia memuat 64 byte pesan hash ke dalam 8 register 64-bit (RBP, R8, R9, R10, R11, R12, R13, R14) di awal, untuk menghindari operasi beban memori yang berlebihan melalui rutin.
Untuk beroperasi dengan nilai 32-bit menyimpan dalam bit yang lebih tinggi dari register 64-bit (bit 32-63) menggunakan "ROR" dengan 32; 8 Variabel Makro (M1-M8) digunakan untuk mencatat atau mencatat keadaan apakah register telah di-ror'ed atau tidak.
Ini juga memiliki kemampuan untuk menggunakan instruksi LEA alih -alih dua penambahan sekuental (uncomment uselea = 1), tetapi lebih lambat pada prosesor Skylake. Juga, Intel dalam referensi optimasi Maual tidak menyarankan kami dari LEA sebagai pengganti dua menambahkan, karena lebih lambat pada prosesor atom.
MD5_Transform-x64 is released under a dual license, and you may choose to use it under either the Mozilla Public License 2.0 (MPL 2.1, available from https://www.mozilla.org/en-US/MPL/2.0/) or the GNU Lesser General Public License Version 3, dated 29 June 2007 (LGPL 3, available from https://www.gnu.org/licenses/lgpl.html).
MD5_Transform-X64 didasarkan pada kode berikut oleh Peter Sawatzki.
Pemberitahuan asli oleh Peter Sawatzki mengikuti.
FastMD5(@buff[ 0 ], length(buff));
Implementasi Delphi oleh [email protected]
https://github.com/passbyyou888/fastmd5/
2018-1-27