مولد قيم هاش MD5

يُولِّد نفس مجموع التحقق السداسي عشري المكوَّن من 32 حرفًا تمامًا مثل md5sum وopenssl dgst -md5 وcertutil -hashfile، وهو أمر مفيد عندما تنشر صفحة التنزيل قيمة MD5 وتريد التحقق من مطابقة الملف دون الحاجة إلى تثبيت أداة سطر أوامر (CLI). يدعم إدخال النصوص (تُعالَج كبايتات UTF-8، بما يتماشى مع أدوات يونكس) وإدخال الملفات (بمعالجة تدفقية، بحيث تتسع الملفات الكبيرة في الذاكرة).

كيفية التحقق من قيمة مجموع التحقق (checksum) للملف

  1. 1

    أفلِت الملف الذي جرى تنزيله

    تُمرِّر الأداة البيانات عبر دالة MD5 على شكل كتل صغيرة.

  2. 2

    انتظر ظهور البصمة

    تبلغ السرعة بضعة ميغابايت في الثانية على معظم الأجهزة؛ وتستغرق معالجة ملف ISO بحجم 500 ميغابايت نحو 30 إلى 60 ثانية.

  3. 3

    قارنها بمجموع التحقق المنشور

    انسخ والصق القيمة المتوقعة للهاش. تُظهر الأداة التطابق أو عدم التطابق بالألوان.

  4. 4

    لا تُشغّل الملف عند عدم التطابق

    وجود قيمة هاش مختلفة يعني أن الملف تالف أو جرى التلاعب به؛ لذا أعِد تنزيله من مصدر موثوق.

تنسيق الناتج القياسي

تُنتج خوارزمية MD5 قيمة بطول 128 بتًا، تُكتب عادةً على شكل 32 حرفًا سداسيًا عشريًا بأحرف صغيرة:

9e107d9d372bb6826bd81d3542a419d6

يطبع أمر يونكس md5sum النص <hash> <filename> مع فراغين بينهما. وتتوقع أدوات GNU coreutils هذا التنسيق مع الخيار -c (التحقق).

وضع النص مقابل وضع الملف

  • إدخال النص يُرمَّز بـ UTF-8 قبل عملية التجزئة، وهو ما يتطابق مع echo -n "text" | md5sum على يونكس. أما Get-FileHash في ويندوز باورشيل فيستخدم UTF-16 افتراضيًا ما لم تحدد خلاف ذلك، ولهذا قد تختلف القيمتان.
  • إدخال الملف يُجزَّأ بايتًا تلو الآخر بغض النظر عن محتوى الملف، دون أي تحويل للترميز. سيتفق متصفحك وأداة سطر الأوامر (CLI) دائمًا على قيمة تجزئة الملف.

مطابقة مجموع التحقق المنشور

تنشر معظم صفحات التنزيل قيمة التجزئة مع اسم الملف:

md5sum: 9e107d9d372bb6826bd81d3542a419d6  yourfile.iso
  • تأكد من أنك نزّلت الملف الصحيح تمامًا (ينشر الموردون أحيانًا قيم تجزئة لكل نسخة على حدة، مثل x86_64 مقابل ARM).
  • ثِق بمصدر مجموع التحقق. رابط MD5 الموجود على الصفحة المخترقة نفسها لا قيمة له. قارِن كلما أمكن بملف SHA256SUMS موقّع بـ GPG.

الأسباب الشائعة لعدم التطابق

  • تنزيل جزئي، انقطع المتصفح ثم استُؤنف التنزيل بشكل خاطئ.
  • إصدار مختلف على المرآة عمّا يَعِد به مجموع التحقق.
  • اختيار ملف خاطئ (جزّأت ملف .sig بدلًا من ملف ISO).
  • ضغط أو إعادة تنسيق، لملف .tar.gz والدليل المستخرَج منه قيم تجزئة مختلفة تمامًا.
  • تلاعب فعلي، نادر الحدوث، لكنه السبب في وجود مجاميع التحقق أصلًا.

السرعة

خوارزمية MD5 سريعة للغاية؛ فحاسوب محمول من السنوات الخمس الماضية يجزّئ بمعدل يزيد عن 400 ميغابايت في الثانية. والعائق الرئيسي عند تجزئة ملف داخل المتصفح هو عادةً عمليات إدخال/إخراج القرص، وليس الحسابات الرياضية نفسها.

عندما لا تكفي MD5

عندما تكون سلامة البيانات حساسة أمنيًا (أي التحقق من أن برنامج التثبيت المُنزَّل لم يُستبدل ببرمجيات خبيثة)، فضّل SHA-256؛ لأن تصادمات MD5 سهلة الحساب للغاية. وتنشر معظم المشاريع الحديثة كلتا القيمتين معًا.

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

يستخدم PowerShell بشكل افتراضي خوارزمية SHA-256 بدلاً من MD5 في معرّف Get-FileHash؛ لتطابقه مع قيمة MD5 نُشرت، استخدم Get-FileHash -Algorithm MD5 file.iso.

تقوم معظم المتصفحات الحديثة بترقية ملفات تصل إلى حوالي 2 جيجابايت بشكل سلس. أما بالنسبة للملفات الأكبر حجمًا (مثل أقراص DVD أو صور الأقراص)، فيُنصح باستخدام أداة واجهة سطر الأوامر (CLI)؛ وهي md5sum file على نظام لينكس، وGet-FileHash -Algorithm MD5 على نظام ويندوز.

عادةً ما تحتوي ملفات من نوع .md5 على سطر واحد فقط يتكون من قيمة التجزئة السداسية، تليها فراغان، ثم اسم الملف. تقوم أدوات مثل md5sum -c checksum.md5 بقراءة هذا السطر والتحقق منه؛ والجزء السداسي وحده يُعد التجزئة الخام.

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

لا، عملية التجزئة تتم بالكامل داخل متصفحك عبر واجهة برمجة التطبيقات WebCrypto ووحدات المصفوفات المكتوبة نصيًا. ولا تغادر الملفات جهازك قط.

أدوات ذات صلة

الأداة متاحة بلغات أخرى