حساب بصمة الملف MD5 وSHA-256: كيف تتأكد أن ما نزّلته لم يتغيّر

person فريق سهلcalendar_today ١٥ أكتوبر ٢٠٢٦schedule 4 دقيقة قراءة
ملف تتولد له بصمة SHA-256 تُقارن بالبصمة المنشورة

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

ما هي البصمة (Hash)

الدالة التي تحسب البصمة تأخذ أي مدخل — نصاً من كلمة أو ملفاً من عدة غيغابايت — وتُخرج سلسلة ثابتة الطول. وهذه الدوال مصممة لتحقق أمرين مهمين:

  • الحتمية: المدخل نفسه يعطي البصمة نفسها دائماً، على أي جهاز وفي أي وقت.
  • الحساسية: تغيير حرف واحد يغيّر البصمة كلها تغييراً جذرياً، فلا تجد بصمتين متشابهتين لملفين متقاربين.

ولا يمكن عملياً الرجوع من البصمة إلى الملف. هي اتجاه واحد: تُحسب من الملف، ولا يُستخرج الملف منها.

كيف تتحقق من ملف نزّلته

  1. ابحث في صفحة التنزيل عن مجموع التحقق المنشور، وانتبه إلى الخوارزمية المكتوبة بجانبه (SHA-256 غالباً).
  2. افتح أداة مولّد البصمة في سهل واختر الملف. يجري الحساب على جهازك ولا يُرفع الملف إلى أي مكان.
  3. انظر إلى الخوارزمية نفسها في النتائج وقارن القيمتين.
  4. إن تطابقتا حرفاً بحرف فالملف سليم. وإن اختلفتا ولو في خانة واحدة فلا تفتحه ونزّله من جديد.

تفصيل مهم: المقارنة يجب أن تكون على الخوارزمية نفسها. بصمة MD5 لن تطابق أبداً بصمة SHA-256 لنفس الملف، ولا يعني ذلك أن الملف تالف.

أي خوارزمية تختار؟

تقدّم الأداة MD5 وSHA-1 وSHA-256 وSHA-384 وSHA-512. القاعدة العملية بسيطة:

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

أخطاء شائعة عند المقارنة

أغلب حالات «الاختلاف» ليست تلفاً حقيقياً، بل أخطاء صغيرة في طريقة المقارنة نفسها:

  • الحروف الكبيرة والصغيرة: البصمة تُكتب بنظام ستة عشري، وبعض المواقع تعرضها بحروف كبيرة وبعضها بصغيرة. القيمتان متطابقتان رغم اختلاف الشكل، فلا تعدّه فرقاً.
  • مسافة أو سطر زائد: عند نسخ البصمة من صفحة ويب قد يلتصق بها فراغ في أولها أو آخرها، فتظهر المقارنة الآلية فاشلة.
  • ملف مختلف الإصدار: قد تنشر الصفحة بصمة الإصدار السابق ولم تحدّثها بعد، فتتحقق من ملف صحيح مقابل بصمة قديمة.
  • مقارنة نص بدل ملف: بصمة اسم الملف المكتوب ليست بصمة محتواه. تأكد أنك اخترت الملف نفسه لا كتبت اسمه.

والقاعدة الأمينة: إن اختلفت القيمتان بعد استبعاد هذه الأسباب، فالتنزيل الثاني هو الخطوة الأولى، لا محاولة فتح الملف ورؤية ما يحدث.

سيناريو واقعي

مسؤول نظم ينزّل صورة نظام تشغيل بحجم عدة غيغابايت عبر اتصال بطيء ومتقطع. بعد انتهاء التنزيل يريد التأكد قبل أن يحرقها على قرص أو يثبّتها على عشرات الأجهزة. يحسب SHA-256 للملف ويقارنها بالقيمة المنشورة في صفحة الناشر، فيجدها مختلفة في آخر ثمانية أحرف. السبب انقطاع في منتصف التنزيل ترك الملف ناقصاً دون أن يشكو أحد. يعيد التنزيل فتتطابق البصمتان. لولا هذه الخطوة لاكتُشف الخلل لاحقاً على جهاز العميل لا على جهازه.

وإن كنت تبحث عن طريقة لتوليد كلمة مرور قوية بدل ترميز كلمة موجودة، فاستخدم مولّد كلمات المرور.

أسئلة شائعة

هل يُرفع ملفي إلى خادم؟

لا. الحساب يتم على جهازك، ولا يُرسل الملف أو محتواه. هذا مهم حين تتحقق من ملفات عمل أو نسخ احتياطية.

هل البصمة تشفّر الملف؟

لا. هي لا تخفي المحتوى ولا تحميه، وإنما تعطي معرّفاً ثابتاً له. من لديه الملف يستطيع حساب بصمته، ومن لديه البصمة وحدها لا يستطيع استعادة الملف.

لماذا بصمة النص الفارغ ليست فارغة؟

لأن الدالة تعمل على أي مدخل بما فيه الفارغ، وتعطيه بصمة محددة معروفة. وهي من الحالات التي تُستخدم للتأكد من أن الأداة تعمل كما ينبغي.

هل تتغير البصمة إذا أعدت تسمية الملف؟

لا. البصمة تُحسب من محتوى الملف فقط، لا من اسمه ولا تاريخه. أما تحرير الملف وحفظه من جديد، حتى دون تغيير ظاهر، فقد يغيّر بايتات داخلية ويغيّر البصمة.

هل يمكن حساب بصمة نص عربي؟

نعم. النص العربي يُحوَّل أولاً إلى بايتات بترميز UTF-8 ثم تُحسب بصمته، فتحصل على القيمة نفسها التي تعطيها أدوات سطر الأوامر والمكتبات البرمجية المعتمدة على الترميز ذاته. وإن حسبتها في برنامج يستخدم ترميزاً مختلفاً فستظهر بصمة مختلفة لنص يبدو متطابقاً، وهذا مصدر حيرة شائع عند مقارنة النتائج بين أدوات مختلفة. لذلك تأكد من الترميز قبل أن تعدّ الفرق خطأ في الأداة.

ما الفرق بين مجموع التحقق والتوقيع الرقمي؟

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

مقالات ذات صلة