كيفية التحقق من سلامة الملفات باستخدام تجزئة SHA و MD5 — الدليل الشامل
ما هي دالة التجزئة؟
تأخذ دالة التجزئة مدخلاً بأي حجم — ملفاً، سلسلة نصية، كلمة مرور — وتنتج سلسلة بطول ثابت من الأحرف تُسمى التجزئة أو الملخص أو المجموع الاختباري. المدخل نفسه ينتج دائماً نفس الناتج، ولكن حتى تغيير بت واحد في المدخل ينتج تجزئة مختلفة كلياً. وهذا ما يجعل التجزئات مثالية للتحقق من أن الملف هو بالضبط ما قصده الناشر — لا أكثر ولا أقل.
عملية التجزئة هي عملية أحادية الاتجاه: لا يمكنك إعادة بناء الملف الأصلي من تجزئته، وهذا ما يجعلها مفيدة لفحوصات السلامة وتخزين كلمات المرور الآمن (مع أن التجزئة الخام وحدها، كما هو مشروح أدناه، ليست كافية لكلمات المرور).
لماذا التحقق من سلامة الملف باستخدام التجزئة؟
عند تنزيل برنامج، خاصة من مواقع النسخ المتطابقة أو التورنت أو مواقع الطرف الثالث، يمكن أن يتغير الملف بطريقتين:
- تلف غير مقصود — قد يؤدي تنزيل متقطع، أو اتصال شبكي سيء، أو وسيط تخزين معيب إلى إفساد البايتات بصمت.
- تلاعب خبيث — يعترض مهاجم التنزيل ويستبدل الملف بنسخة معدلة تحتوي على برامج ضارة.
ينشر مطورو البرامج الجادة (توزيعات لينكس، أدوات الأمان، مشاريع مفتوحة المصدر) التجزئة الرسمية لكل ملف إصدار إلى جانب رابط التنزيل. إذا تطابقت التجزئة التي تحسبها محلياً مع المنشورة، يمكنك أن تثق بأن الملف وصل سليماً دون تغيير.
MD5 مقابل SHA-1 مقابل SHA-256 مقابل SHA-512 — ما الفرق؟
ليست كل خوارزميات التجزئة متساوية، واختيار الصحيح منها مهم:
| الخوارزمية | طول الناتج | الحالة |
|---|---|---|
| MD5 | 32 حرفاً ست عشرياً (128 بت) | مكسورة تشفيرياً — تجنبها لأغراض الأمان |
| SHA-1 | 40 حرفاً ست عشرياً (160 بت) | مكسورة أيضاً — لم تعد موصى بها للاستخدامات الأمنية |
| SHA-256 | 64 حرفاً ست عشرياً (256 بت) | المعيار الصناعي الحالي |
| SHA-512 | 128 حرفاً ست عشرياً (512 بت) | أقوى، أبطأ قليلاً، تُستخدم عند الحاجة إلى هامش أمان إضافي |
لا يزال MD5 وSHA-1 يُستخدمان على نطاق واسع لفحوصات سلامة الملفات البسيطة (اكتشاف التلف العرضي) لأن الاصطدامات تتطلب جهداً متعمداً ومعقداً لإنشائها — ولكن لا ينبغي الوثوق بأي منهما عندما يكون الأمان ضد جهة خبيثة مهماً. إذا كنت تتحقق من ملف مقابل مجموع اختباري منشور من مصدر يهتم بالأمان، فضّل SHA-256 كلما كان متاحاً.
كيفية إنشاء تجزئة للتحقق من الملف
أسهل طريقة للتحقق من التجزئة دون استخدام سطر الأوامر هي لصق النص ذي الصلة (أو المجموع الاختباري المتوقع للملف) في أداة تعمل داخل المتصفح. يحسب مولد التجزئة تجزئات MD5 وSHA-1 وSHA-256 وSHA-384 وSHA-512 فوراً، تماماً داخل متصفحك — لا يُرفع أي شيء إلى الخادم، وهذا مهم إذا كان المحتوى الذي تجزئه حساساً.
إذا كنت بحاجة إلى تجزئة محتوى الملف الفعلي بدلاً من النص، استخدم الأداة المضمنة في نظام التشغيل (أدناه) لتوليد التجزئة، ثم الصق سلسلة التجزئة الناتجة في مولد التجزئة أو أداة مقارنة النصوص للتحقق منها مقابل تلك المنشورة من مصدر الملف.
كيفية التحقق من تجزئة ملف على ويندوز
يتضمن ويندوز أداة مدمجة تُسمى certutil يمكنها حساب التجزئات دون تثبيت أي شيء إضافي:
certutil -hashfile "C:\\path\\to\\file.exe" SHA256
استبدل SHA256 بـ MD5 أو SHA1 أو SHA512 حسب الخوارزمية التي قدمها الناشر. يعيد الأمر التجزئة مباشرة في الطرفية — قارنها حرفاً بحرف مع القيمة الرسمية.
كيفية التحقق من تجزئة ملف على macOS و Linux
يأتي كل من macOS و Linux مع أوامر تجزئة مخصصة:
shasum -a 256 /path/to/file
md5 /path/to/file # macOS
md5sum /path/to/file # Linux
يُخبر العلم -a 256 الأمر shasum باستخدام SHA-256؛ يمكنك استبداله بـ 1 أو 384 أو 512 لخوارزميات أخرى. على Linux، تتوفر أيضاً الأوامر sha256sum و sha1sum و sha512sum كأوامر مستقلة.
خطوة بخطوة: التحقق من ملف تم تنزيله
- اعثر على المجموع الاختباري الرسمي المنشور من مصدر الملف — عادةً في صفحة التنزيل أو في ملف منفصل
.sha256/checksums.txt. - شغّل أمر التجزئة المطابق لنظام التشغيل الخاص بك (انظر أعلاه) على الملف المُنزّل.
- قارن التجزئة الناتجة مع المنشورة، حرفاً بحرف. حتى اختلاف حرف واحد يعني أن الملف غير مطابق.
- إذا تطابقت التجزئتان، فالملف سليم ومطابق لما أصدره الناشر. إذا لم تتطابقا، احذف الملف وأعد تنزيله من مصدر موثوق — لا تشغّله.
ما هو المجموع الاختباري؟
المجموع الاختباري هو ببساطة قيمة تجزئة تُستخدم خصيصاً لتأكيد أن البيانات لم تتغير — غالباً ما يُستخدم المصطلحان بالتبادل في سياق تنزيلات الملفات. ينشر موزعو البرامج المجاميع الاختبارية (عادةً SHA-256 اليوم) تحديداً ليتمكن المستخدمون من تنفيذ خطوات التحقق أعلاه دون الحاجة إلى أدوات خاصة أبعد مما هو مدمج في نظام التشغيل أو مولد التجزئة الموجود في المتصفح.
هل التجزئة قابلة للعكس؟
لا. دالة التجزئة التشفيرية المصممة بشكل صحيح هي عملية أحادية الاتجاه — لا توجد طريقة رياضية لاستعادة المدخل الأصلي من تجزئته وحدها. هذا مقصود وهو بالضبط ما يجعل التجزئات مفيدة للتحقق من السلامة وتخزين بيانات الاعتماد الآمن.
ما هو تصادم التجزئة؟
يحدث التصادم عندما ينتج مدخلان مختلفان نفس ناتج التجزئة. تسمح كل دالة تجزئة تقنياً بوجود التصادمات رياضياً (لأن المدخلات غير محدودة والنواتج ذات طول ثابت)، لكن الخوارزمية الآمنة تجعل العثور على واحد منها غير ممكن حسابياً. تم إثبات هجمات تصادم عملية لكل من MD5 وSHA-1، ولهذا لم يعد خبراء الأمان يعتبرونهما آمنين لأي شيء أبعد من فحوصات السلامة العارضة ضد التلف العرضي.
هل يمكنني استخدام التجزئة لكلمات المرور؟
لا ينبغي أبداً استخدام SHA-256 أو SHA-512 الخام لتخزين كلمات المرور مباشرة، لأن هذه الخوارزميات مصممة لتكون سريعة — مما يجعل من السهل على المهاجمين اختراقها بالقوة الغاشمة على نطاق واسع باستخدام العتاد الحديث. لكلمات المرور، استخدم خوارزمية مخصصة لهذا الغرض مثل bcrypt أو argon2 أو PBKDF2، وهي بطيئة عمداً وتتضمن تمليحاً مدمجاً للدفاع ضد هجمات جداول قوس قزح.
ما هو التمليح؟
التمليح يعني إضافة قيمة عشوائية فريدة لكل مدخل قبل تجزئته، بحيث حتى المدخلات المتطابقة (مثل مستخدمين لهما نفس كلمة المرور) تنتج تجزئات مختلفة. هذا يحبط هجمات جداول قوس قزح المحسوبة مسبقاً، لأن المهاجم سيحتاج إلى جدول منفصل لكل قيمة ملح ممكنة بدلاً من جدول عالمي واحد.
ما هو HMAC؟
HMAC (رمز مصادقة الرسالة القائم على التجزئة) يجمع بين دالة تجزئة ومفتاح سري للتحقق من سلامة الرسالة وأصالتها معاً — مؤكداً ليس فقط أن البيانات لم تُعدّل، بل أنها جاءت من شخص يملك المفتاح السري. يُستخدم على نطاق واسع في مصادقة API، حيث يحتاج الخادم إلى تأكيد أن الطلب جاء من عميل شرعي ولم يُعبث به أثناء العبور.
مرجع سريع: أي تجزئة يجب أن تستخدمها؟
- التحقق من ملف تم تنزيله مقابل المجموع الاختباري للناشر → استخدم ما يوفره الناشر؛ فضّل SHA-256 إذا كانت هناك خيارات متعددة.
- اكتشاف الملفات أو المحتوى المكرر → يعمل كل من MD5 و SHA-256 بشكل جيد، لأن الأمان ليس هو الشاغل هنا.
- تخزين كلمات المرور → أبداً لا تستخدم SHA/MD5 الخام؛ استخدم bcrypt أو argon2 أو PBKDF2.
- التحقق من أصالة طلب API → HMAC مع SHA-256.
الخلاصة
يستغرق التحقق بالتجزئة ثوانٍ ويمكن أن يحميك من تشغيل برامج تالفة أو خبيثة. سواء استخدمت أدوات سطر الأوامر المضمنة في نظام التشغيل أو خياراً سريعاً في المتصفح، العملية هي نفسها: أنشئ التجزئة، قارنها مع الرسمية، ولا تمضِ قدماً إلا إذا تطابقت تماماً. جرّب مولد التجزئة المجاني لحساب تجزئات MD5 وSHA-1 وSHA-256 وSHA-384 وSHA-512 فوراً — كل شيء يعمل محلياً في متصفحك، لذا لا يغادر أي شيء تجزئه جهازك أبداً.