في كثير من مراكز تحميل الملفات والبرامج على الانترنت وعند تحميلنا لملف معين نجد ان بعض مراكز التحميل او مزود الخدمة يزودنا بما يسمى ب md5sum للملف وهو غالبا كود بطول 128بت على سبيل المثال الكود التالي “595f44fec1e92a71d3e9e77456ba80d1”. حيث يستخدم هذا الكود للتاكد من تطابق نقل الملفات بعد تحميلها.
فما هو هذا الكود؟ وما هو الهدف منه؟ وكيف نقوم بتوليده لملفاتنا التي نود مشاركاتها مع الاخرين؟
ان md5 هي تقنية اختزال تستخدم في علم التعمية و التشفير (Cryptographic) ودالة الاختزال هذة تسمة دالة هاش التشفيرية تقوم باختزال رسالة ذات طول متغير إلى طول ثابت هو 128 بت بغض النظر عن طولها الأصلي، حيث يتم تحويل الرسالة إلى حزم (blocks) طول كل منها 512 بت بغرضِ اختزالها في خطوات لاحقة. من الجدير بالذكر ان أي تغيير مهما كان حجمه في النص الأصلي يُنتج قيمة اختزال مختلفة تمامًا عن القيمة السابقة. ويمكن استخدام دالة هات التشفيرية على الملفات ايضا لتعطينا قيمة اختزال لها يمكن اعتماد تلك القيم على انها توقيع الملف. ففي حال نقل الملف على وسائط تخزين مختلفة او مشاركته على الشبكة فانه يمكن دوما التحقق من قئمة هاش التشفيرية للملف لمطابقتها مع القيمة المختزلة من الملف الاصلي وبالتالي تحديد فيما اذا كان حصل اي تغيير على الملف او لا.
وبمعنى اكثر تبسطيا وبعيدا عن مصطلحات التشفير ، فان قيمة md5 للملف تعتبر بمثابة التوقيع. فمثلا اذا كان لدينا الملف X وقمنا على توليد قيمة md5 للملف ولنفترض انها كانت 595f44fec1e92a71d3e9e77456ba80d1 ، وبالتالي فان نلقلنا لهذا الملف او توزيعه على الانترنت او التصرف فيه باي شكل من الاشكال (دون التعديل عليه) ومن ثم القيام على حساب قيمة md5 له يجب ان تعطينا “595f44fec1e92a71d3e9e77456ba80d1” والا ان كانت القيمة مختلفة فهذا يعني ان الملف الذي قمنا على حساب قيمة md5 له يختلف عن الملف الاصلي.
ولهذا يقوم المبرمجون ومطوروي البرامج في الغالب بتزويد قيمة md5 للملفات التي يتم تحميلها حتى يتاكد من يقوم بتحميل الملف ان الملفات مطابقة لما قام المبرمج بتوزيعه. فلربما ان عملية التحميل لم تحصل بشكل كامل وهذا يعني اختلاف في قيمة md5 او لربما قامت جهة معينة باضافة شيء معين للملف عندها سوف تختلف قيمة md5. لهذا انصحك دوما عندما تحمل الملفات من الشبكة وخصوصا ملفات المشاريع مفتوحة المصدر او المجانية ان تقوم بالتاكد من قيمة md5 للملف الذي تقوم بتحميله في حال قام مزود الملف باعطائك القيمة الاصلية للملف عند التحميل.
كيف افحص قيمة md5 لملف؟
هذا الامر ممكن بكل بساطة.
على انظمة التشغيل ليونكس وشبيهات يونكس:
اذا كنت تستخدم نظام التشغيل لينكس فانه يمكنك تنفيذ الامر md5sum من خلال الطرفية bash في واجهة سطر الاوامر ، مثلا:
$ md5sum file.tar.gz
وهنا سوف تحصل على قيمة md5 للملف file.tar.gz ، وعندها تستطيع مقارنتها مع القيمة الاصلية للملف التي حصلت عليها من ناشر الملف والتاكد من انه مطابق للاصل او لا. اما في حال كنت انت ناشر الملف فعندها يمكنك ارفاق قائمة md5 في ملف نصي او بطريقة معينة عند نشر الملف لتسمح للاخرين بالتحقق من قيمة md5 للملف عند تحميله ومطابقته للاصل.
على نظام التشغيل ويندوز
اما ان كنت تعمل على نظام التشغيل ويندوز فيمكنك تحميل الملف md5sum.exe المخصص لغايات احتساب قيمة md5 للملفات والذي يمكن تنفيذه في سطر الاوامر cmd على نظام التشغيل ويندوز.
على انظمة ماك
اما في حال كنت تعمل على نظام التشغيل OS X فكل ما عليك هو فتح الطرفية Terminal وتنفيذ الامر md5 متبوعا بفراغ ومن ثم اسم الملف الذي تود فحص قيمة md5 له، مثال:
> md5 file.tar.gz
مراجع