
مجموعة من دوال التجزئة التشفيرية مكتوبة بلغة Rust النقية
مجموعة من دوال التجزئة المشفّرة مكتوبة بلغة Rust نقية.
جميع الخوارزميات موجودة في حزم (crates) منفصلة ويتم تنفيذها باستخدام سمات (traits) من حزمة digest.
أمثلة الاستخدام متوفرة في توثيقات حزم digest وتنفيذات التجزئة.
بالإضافة إلى ذلك، لا تتطلب جميع الحزم المكتبة القياسية (أي أنها تدعم وضع no_std) ويمكن
استخدامها بسهولة للبرمجة على الأنظمة العارية (bare-metal) أو WebAssembly عن طريق تعطيل ميزات الحزمة الافتراضية.
لمجموعة من دوال الإخراج القابلة للتوسيع (XOFs)، راجع مستودع RustCrypto/XOFs.
ملاحظة: بالنسبة للتطبيقات الجديدة، أو عندما لا تكون التوافقية مع المعايير الحالية الأخرى مصدر قلق رئيسي، نوصي بشدة باستخدام BLAKE3 أو SHA-2 أو SHA-3.
ملاحظة: حزمة blake3 تنفّذ سمات digest المستخدمة من قبل بقية دوال التجزئة في هذا المستودع، ولكن تتم صيانتها من قبل فريق BLAKE3.
يصف ما يلي تقييمات مستويات الأمان المرتبطة بكل دالة تجزئة (أي الخوارزميات نفسها، وليس التنفيذ المحدد):
| الرمز | الوصف |
|---|---|
| 💚 | لا توجد هجمات ناجحة معروفة |
| 💛 | اختراق نظري: الأمان أقل من المُدّعى |
| 💔 | هجوم مُثبت عمليًا: تجنّبه قدر الإمكان |
راجع صفحة Security على ويكيبيديا لمزيد من المعلومات.
كلما أمكن، تُنشر الحزم (crates) تحت نفس اسم مجلد الحزمة (crate).
مالكو md5 رفضوا المشاركة في هذا المشروع.
لا تنفّذ هذه الحزمة سمات digest، لذا فهي غير متوافقة مع نظام RustCrypto البيئي.
لهذا السبب ننشر تنفيذنا لـ MD5 باسم md-5 ونعلّمه بعلامة ❗.
لاحظ أن المكتبة نفسها تُسمى md5، أي داخل عبارات use يجب عليك استخدام md5 وليس md_5.
جميع الحزم (crates) في هذا المستودع مرخّصة بموجب أحد الخيارين التاليين:
حسب اختيارك.
ما لم تذكر خلاف ذلك صراحةً، فإن أي مساهمة تقدمها عمدًا لإدراجها في العمل، كما هو محدد في ترخيص Apache-2.0، ستُرخّص بموجب الترخيصين المزدوجين أعلاه، دون أي شروط أو أحكام إضافية.
| الخوارزمية | Crate | Crates.io | التوثيق | MSRV | Security |
|---|
| Ascon-Hash256 | ascon‑hash256 | 1.85 | 💚 | ||
| bash-hash | bash‑hash | 1.85 | 💚 | ||
| BelT hash | belt‑hash | 1.85 | 💚 | ||
| BLAKE2 | blake2 | 1.85 | 💚 | ||
| FSB | fsb | 1.85 | 💚 | ||
| GOST R 34.11-94 | gost94 | 1.85 | 💛 | ||
| Grøstl (Groestl) | groestl | 1.85 | 💚 | ||
| JH | jh | 1.85 | 💚 | ||
| Kupyna | kupyna | 1.85 | 💚 | ||
| MD2 | md2 | 1.85 | 💔 | ||
| MD4 | md4 | 1.85 | 💔 | ||
| MD5 | md5 ❗ | 1.85 | 💔 | ||
| RIPEMD | ripemd | 1.85 | 💚 | ||
| SHA-1 | sha1 | 1.85 | 💔 | ||
| SHA-1 Checked | sha1-checked | 1.85 | 💛 | ||
| SHA-2 | sha2 | 1.85 | 💚 | ||
| SHA-3 (Keccak) | sha3 | 1.85 | 💚 | ||
| SHABAL | shabal | 1.85 | 💚 | ||
| Skein | skein | 1.85 | 💚 | ||
| SM3 (OSCCA GM/T 0004-2012) | sm3 | 1.85 | 💚 | ||
| Streebog (GOST R 34.11-2012) | streebog | 1.85 | 💛 | ||
| Tiger | tiger | 1.85 | 💛 | ||
| Whirlpool | whirlpool | 1.85 | 💚 |