مولّد تجزئة MD5

احسب ملخص MD5 بطول 128 بت لنص أو بايتات ست عشرية أو ملف. تتحدّث قيمة التجزئة أثناء الكتابة، ويُخبرك حقل «المقارنة مع» بما إذا كانت تطابق المجموع الاختباري الذي تتوقعه.

جميع الخوارزميات

تعمل بالكامل داخل متصفحك، ولا يُرفع أي شيء.

طريقة الاستخدام

  1. اكتب النص أو الصقه، أو غيّر «صيغة المدخلات» إلى «ست عشري» لإدخال بايتات، أو انقر «فتح ملف» لحساب تجزئة بايتات الملف كما هي تمامًا.
  2. أبقِ «ترميز النص» على UTF-8 ما لم تكن قيمة التجزئة الأصلية محسوبة من نص بمجموعة أحرف أخرى.
  3. من «صيغة المخرجات»، اختر «ست عشري (أحرف صغيرة)» أو «ست عشري (أحرف كبيرة)» أو «Base64».
  4. للتحقق من ملف نزّلته، الصق قيمة MD5 المنشورة في حقل «المقارنة مع» وتأكّد من ظهور «متطابقة».

ما هي خوارزمية MD5؟

صمّم رونالد ريفست (Ronald Rivest) خوارزمية MD5 (اختصار Message-Digest Algorithm 5)، ونُشرت عام 1992 في RFC 1321. تقرأ الخوارزمية مدخلاتها في كتل من 512 بت وتُنتج ملخصًا بطول 128 بت، يُكتب عادةً في صورة 32 حرفًا ست عشريًا أو 24 حرفًا بترميز Base64. وتعطي المدخلات نفسها دائمًا الملخص نفسه، أما تغيير بت واحد فقط في المدخلات فيغيّر نحو نصف بتات المخرجات.

التجزئة عملية أحادية الاتجاه: فلا يوجد مفتاح، ولا سبيل إلى «فك تشفير» قيمة MD5 لاستعادة المدخلات. أما المواقع التي تزعم أنها تعكس MD5 فتبحث عن القيمة في جداول ضخمة من تجزئات الكلمات الشائعة وكلمات المرور المسرّبة، ولهذا كثيرًا ما يُعثر على تجزئة MD5 غير المملّحة لكلمة مرور قصيرة في ثوانٍ.

هل لا تزال MD5 آمنة؟

ليست آمنة في مواجهة مهاجم. فقد نشرت شياويون وانغ (Xiaoyun Wang) وزملاؤها عام 2004 تصادمات عملية، أي مدخلين مختلفين لهما قيمة MD5 نفسها. ثم تلتها تصادمات البادئة المختارة (chosen-prefix): إذ استخدم باحثون أحدها عام 2008 لإنشاء شهادة CA مزيّفة، وفي عام 2012 استخدم البرنامج الخبيث Flame أحدها لتزوير شهادة جعلت شيفرته تبدو موقّعة من Microsoft. واليوم يجد حاسوب محمول عادي تصادمًا في MD5 خلال ثوانٍ، وينص RFC 6151 على أن MD5 لم تعد مقبولة حيث تُشترط مقاومة التصادم، كما في التواقيع الرقمية.

لكن MD5 لا تزال مناسبة مجموعًا اختباريًا لكشف التلف العرضي، مثل تنزيل غير مكتمل أو بت انقلبت قيمته على القرص، وكذلك لمفاتيح التخزين المؤقت أو لإزالة التكرار من بيانات موثوقة. وعندما يمكن أن يأتي الملف أو مجموعه الاختباري من مهاجم، استخدم SHA-256 بدلًا منها.

الست عشري وBase64 واختلاف قيم التجزئة

تُطبع قيمة MD5 عادةً بالنظام الست عشري، وهي الصيغة التي يُخرجها الأمر md5sum. لكن بعض البروتوكولات ترسل البايتات الـ 16 الخام بترميز Base64 بدلًا من ذلك، مثل ترويسة HTTP Content-MD5 التي تستخدمها واجهات API للتخزين السحابي مثل Amazon S3. اختر «Base64» في «صيغة المخرجات»، أو حوّل قيمة موجودة باستخدام تحويل الست عشري إلى Base64.

إذا اختلفت قيمة MD5 لديك عن نتيجة أداة أخرى، فبايتات المدخلات مختلفة. ومن الأسباب المعتادة: سطر جديد زائد في النهاية، أو نهايات أسطر Windows، أو ترميز نص مختلف؛ فكلمة «café» تشغل 5 بايتات في UTF-8 لكنها 4 بايتات فقط في ISO-8859-1، لذا لا تشترك القيمتان في شيء.

$ echo "hello" | md5sum      # يحسب تجزئة "hello\n"
b1946ac92492d2347c6235b4d2611184  -
$ printf 'hello' | md5sum    # يحسب تجزئة "hello"
5d41402abc4b2a76b9719d911017c592  -

MD5 في سطر الأوامر وفي الشيفرة البرمجية

md5sum file.iso                          # Linux
md5 file.iso                             # macOS
certutil -hashfile file.iso MD5          # Windows
Get-FileHash file.iso -Algorithm MD5     # PowerShell

# Python
import hashlib
hashlib.md5('hello'.encode('utf-8')).hexdigest()

// Node.js
require('crypto').createHash('md5').update('hello', 'utf8').digest('hex')

لا تتضمن واجهة Web Crypto API المدمجة في المتصفحات خوارزمية MD5، لذا تحسبها هذه الصفحة بلغة JavaScript على جهازك، ولا يُرفع أي شيء. ويعرض جدول «جميع الخوارزميات» أسفل النتيجة قيم SHA-1 وSHA-256 وSHA-384 وSHA-512 وCRC-32 وCRC-32C للمدخلات نفسها.

أمثلة

المدخلات (UTF-8)MD5
Hello, World!65a8e27d8879283831b664bd8b7f0ad4
Base64.is2e3c0e8b828164a8db7f62146ca87e14
你好7eca689f0d3389d9dea66ae112e5cfd7

الأسئلة الشائعة

هل يمكن فك تشفير قيمة MD5؟
لا. MD5 دالة تجزئة أحادية الاتجاه وليست تشفيرًا، فلا يوجد ما يُفك تشفيره؛ وكل ما تستطيعه أدوات «فك تشفير MD5» هو إرجاع مدخلات موجودة مسبقًا في جداولها. وإذا احتجت إلى استعادة البيانات الأصلية لاحقًا، فشفّرها بدلًا من ذلك، أو رمّزها بـ Base64 إن لم يلزم إبقاؤها سرية، فهو ترميز قابل للعكس بالكامل.
هل تكفي MD5 للتحقق من ملف تم تنزيله؟

تكشف MD5 التلف العرضي بموثوقية. لكن لأن إنتاج التصادمات رخيص، يستطيع من يُعدّ ملفًا مسبقًا أن يصنع ملفًا ثانيًا مختلفًا له قيمة MD5 نفسها. لذا في التنزيلات المهمة أمنيًا، تحقّق من تجزئة SHA-256 مأخوذة من مصدر موثوق، أو من توقيع رقمي.

ما طول قيمة MD5؟
128 بت، أي 16 بايتًا: 32 حرفًا بالنظام الست عشري، أو 24 حرفًا بترميز Base64 تنتهي بـ ==. وقد تكون السلسلة الست عشرية المؤلفة من 32 حرفًا أيضًا تجزئة MD4 أو NTLM؛ وتعرض أداة تحديد نوع التجزئة الاحتمالات الممكنة.
هل يمكنني حساب MD5 لملف كبير؟
نعم. افتح الملف عبر «فتح ملف» وستُحسب تجزئة بايتاته في متصفحك دون رفعه. والحد هو مقدار الذاكرة الذي يستطيع متصفحك استخدامه، لذا يُفضَّل حساب تجزئة الملفات التي يبلغ حجمها عدة غيغابايتات باستخدام md5sum أو certutil.
هل ينبغي تخزين كلمات المرور بتجزئة MD5؟
لا. صُممت MD5 لتكون سريعة، لذا تختبر وحدة GPU واحدة مليارات التخمينات في الثانية. خزّن كلمات المرور باستخدام Argon2id أو scrypt أو bcrypt أو PBKDF2، فهي تضيف ملحًا (salt) وبطيئة عن قصد. ويُنشئ مولّد كلمات المرور كلمات مرور قوية من الأساس.