انتقل إلى محتوى الدرس

One-Way Hashing and Password Salting التجزئة الرقمية وتمليح كلمات المرور

تعرّف على المبادئ الأساسية للتشفير والتجزئة الرقمية على الويب: الفرق بين النص المكشوف والمشفر، والتجزئة وحيدة الاتجاه وتمليح كلمات المرور مقابل التشفير العكسي، والتشفير المتماثل وغير المتماثل والتوقيع الرقمي في اتصالات الويب.
3 صفوف تعليمية
تكنولوجيا الويب
1 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

تقوم دالة التجزئة التشفيرية () بأخذ أي مدخل مهما كان حجمه—سواء كان كلمة قصيرة أو ملف نظام تشغيل بحجم عدة جيجابايت—وتحويله إلى سلسلة نصية ذات طول ثابت تُسمى خلاصة أو بصمة التجزئة (). وتتميز التجزئة بثلاث خصائص صارمة:

  • 1. وحيدة الاتجاه تماماً (): لا يوجد «مفتاح فك تشفير» للتجزئة! يمكنك حساب البصمة من النص الأصلي فوراً، لكن يستحيل رياضياً عكس البصمة لاستخراج النص الأصلي منها.
  • 2. حتمية وثابتة الطول: نفس المدخل ينتج دائماً نفس البصمة بنفس عدد الخانات (مثلاً خوارزمية تنتج دائماً بصمة من خانة ست عشرية مهما كبر الملف أو صغر).
  • 3. تأثير الانهيار الجليدي (): تغيير حرف واحد أو نقطة واحدة داخل ملف ضخم يغير بصمة بالكامل! ولهذا تنشر المواقع الرسمية بصمة بجانب البرامج القابلة للتنزيل ليتأكد المستخدم من سلامة الملف وعدم تعديله.

كيف تحفظ المواقع كلمات المرور بأمان ()؟ لا يحفظ الموقع الآمن كلمة مرورك كنص مكشوف أبداً؛ بل يولّد لكل مستخدم نصاً عشوائياً فريداً يُسمى الملح () يدمجه مع كلمة المرور ثم يمررهما على خوارزمية تجزئة بطيئة مخصصة لكلمات المرور مثل أو . وبفضل هذا «الملح الفريد»، حتى لو اختار مستخدمان نفس كلمة المرور بالضبط، ستكون بصمتاهما في قاعدة البيانات مختلفتين تماماً!

الصف 2 كود برمجي
Shell
# 1. Avalanche Effect in SHA-256 (Changing 1 letter changes the entire hash!)
Input A : "CloseTag" -> SHA-256: 4b227777d4dd1fc61c6f884f48641d02...
Input B : "closetag" -> SHA-256: 9f86d081884c7d659a2feaa0c55ad015...

# 2. Password Hashing with Unique Salt (bcrypt embeds Salt inside the hash)
User 1 ("Secret#99" + Salt_A) -> $2b$12$K9pX7mQ2vR8nL4wZ1yT5uO.aBcDeFgHiJkLmNoPqRsTu
User 2 ("Secret#99" + Salt_B) -> $2b$12$W3cN8vB1xM6kP9qD4sF2jL.zYxWvUtSrQpOnMlKjIhGf
الصف 3 ملاحظة هامة