Toolyard

ما التجزئة (Hash): شرح MD5 وSHA-1 وSHA-256

بصمة رقمية للبيانات

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

المدخلتجزئة SHA-256
hello2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
Hello185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969
hello!ce06092fb948d9ffac7d1a376e404b26b7575bcc11ee05a4615fef4fec3a308b

حرف كبير واحد أو علامة تعجب تغيّر كل أحرف النتيجة. جرّبه في مولّد التجزئة.

ما الذي يجعل دالة التجزئة جيدة

  • حتمية: المدخل نفسه ينتج دائمًا التجزئة نفسها، على أي حاسوب.
  • أحادية الاتجاه: لا يمكن الرجوع من التجزئة إلى المدخل.
  • مقاومة للتصادم: يجب أن يكون من المستحيل عمليًا إيجاد مدخلين مختلفين لهما التجزئة نفسها.
  • سريعة الحساب للمجاميع الاختبارية، وهذا مفيد، وهو أيضًا سبب عدم صلاحية التجزئات السريعة لكلمات المرور (انظر أدناه).

التجزئة ليست تشفيرًا

التشفير يعمل في الاتجاهين: بالمفتاح تستعيد الأصل. أما التجزئة فلا مفتاح لها ولا يمكن عكسها؛ إنما تتيح التحقق من تطابق شيء ما. وBase64 أمر مختلف: إنه مجرد ترميز يستطيع أي أحد فك ترميزه.

الخوارزميات الأكثر شيوعًا

الخوارزميةالطولالحالة
MD5128 بت (32 حرفًا ست عشريًا)مكسورة منذ 2004؛ تصلح فقط لكشف التلف العرضي
SHA-1160 بت (40 حرفًا ست عشريًا)مكسورة: نُشر أول تصادم حقيقي في 2017
SHA-256256 بت (64 حرفًا ست عشريًا)آمنة؛ الخيار القياسي اليوم
SHA-512512 بت (128 حرفًا ست عشريًا)آمنة؛ غالبًا أسرع من SHA-256 على حواسيب 64 بت

هكذا تبدو كلمة hello في كل منها:

  • MD5: 5d41402abc4b2a76b9719d911017c592
  • SHA-1: aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
  • SHA-256: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

ما معنى أن MD5 وSHA-1 «مكسورتان»

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

تنتمي SHA-256 وSHA-512 إلى عائلة SHA-2، المنشورة في 2001، ولا يُعرف أي هجوم عملي عليهما. وSHA-3، الموحدة قياسيًا في 2015، تصميم مختلف يُحتفظ به احتياطيًا.

فيمَ تُستخدم التجزئة

  • التحقق من التنزيلات: ينشر المطورون SHA-256 لملفاتهم؛ إن طابقها ملفك فهو مطابق. انظر كيف تتحقق من المجموع الاختباري لملف (SHA-256).
  • التوقيعات الرقمية وشهادات HTTPS: تُحسب تجزئة المستند أو الشهادة ويُوقَّع على تلك التجزئة.
  • Git: كل commit وكل ملف يُعرَّف بتجزئته. استخدم Git خوارزمية SHA-1 دائمًا وأضاف دعمًا لـ SHA-256.
  • Bitcoin وسلاسل الكتل الأخرى: تُربط الكتل ببعضها بـ SHA-256.
  • إيجاد الملفات المكررة: ملفان لهما SHA-256 نفسه هما الملف نفسه.

التجزئة وكلمات المرور

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

جرّبه

يحسب مولّد التجزئة قيم MD5 وSHA-1 وSHA-256 وSHA-384 وSHA-512 معًا لأي نص أو ملف، في متصفحك، ويستطيع مقارنتها بمجموع منشور.

أدوات هذا الدليل

مزيد من الأدلة