تنفيذ خوارزمية MD5 عالية الأداء مع دلفي
بنية المعالج: x86 ، x64
منصة دعم: Win32 ، Win64
متوافق: https و openssl
دعم الملف: أكبر من 4G
خوارزمية تجميع FastMD5 بواسطة Maxim Masiutin
https://github.com/maximmasiutin/md5_transform-x64
تتمثل الميزة الرئيسية لهذا الإصدار 64 بت في أنه يتم تحميل 64 بايت من رسالة HASHERT إلى 8 سجلات 64 بت (RBP ، R8 ، R9 ، R10 ، R11 ، R12 ، R13 ، R14) في البداية ، لتجنب عمليات تحميل الذاكرة المفرطة من خلال الروتين.
للعمل مع متجر القيم 32 بت في أجزاء أعلى من سجل 64 بت (بت 32-63) يستخدم "ROR" بمقدار 32 ؛ 8 متغيرات الماكرو (M1-M8) تستخدم للحفاظ على السجل أو حالة corrent حول ما إذا كان السجل قد تم ror'ed أم لا.
كما أن لديها القدرة على استخدام تعليمات LEA بدلاً من إضافات متتابعة (UNFELEA USELEA = 1) ، لكنها أبطأ على معالجات Skylake. أيضًا ، يشجعنا Intel في مرجع التحسين المماثل على LEA كبديل لإضافات اثنين ، لأنه أبطأ على معالجات الذرة.
يتم إصدار md5_transform-x64 بموجب ترخيص مزدوج ، ويمكنك اختيار استخدامه إما بموجب ترخيص Mozilla Public 2.0 (MPL 2.1 ، متاح من https://www.mozilla.org/en-us/mpl/2.0/) https://www.gnu.org/licenses/lgpl.html).
يعتمد MD5_Transform-X64 على الكود التالي من قبل Peter Sawatzki.
الإشعار الأصلي من قبل بيتر ساواتزكي يتبع.
FastMD5(@buff[ 0 ], length(buff));
تطبيق Delphi بواسطة [email protected]
https://github.com/passbyyou88/fastmd5/
2018-1-27