كيف تُخزَّن كلمات المرور؟ التجزئة والتمليح ولماذا لا يعرف الموقع كلمتك
✦ أهم النقاط
- الموقع الآمن لا يحفظ كلمة مرورك نصًّا، بل ناتج «تجزئة» (Hash) لها لا يمكن عكسه.
- التجزئة دالة اتجاه واحد: تحوّل الكلمة لسلسلة ثابتة الطول، ولا يمكن استرجاع الأصل منها.
- «التمليح» (Salt) يضيف قيمة عشوائية فريدة لكل مستخدم فتفشل جداول القرصنة الجاهزة (Rainbow Tables).
- الخوارزميات الآمنة اليوم بطيئة عمدًا مثل bcrypt وArgon2 لتصعّب التخمين بالقوة الغاشمة.
سؤال بسيط يكشف الكثير: عندما تنسى كلمة مرورك، لماذا يرسل لك الموقع رابط «إعادة تعيين» بدل أن يرسل لك كلمتك القديمة؟ لأن الموقع المحترم لا يعرف كلمتك أصلًا. لا يخزّنها، ولا يستطيع قراءتها. ما يخزّنه فقط هو «بصمة» رياضية لها تُسمّى التجزئة (Hash). هذا التصميم هو خط الدفاع الأخير الذي يحمي حسابك حتى لو سُرقت قاعدة بيانات الموقع بالكامل.
التجزئة دالة رياضية باتجاه واحد: تأخذ أي نص (كلمة مرورك) وتُخرج سلسلة ثابتة الطول تبدو عشوائية. مثلًا كلمة hello عبر SHA-256 تنتج دائمًا نفس البصمة الطويلة. الخاصية السحرية أنها لا رجعة فيها: من البصمة لا يمكن حساب الكلمة الأصلية. وأي تغيير بسيط في المدخل (حرف واحد) يقلب البصمة كليًا. لذا عند تسجيل الدخول، يجزّئ الموقع ما كتبته ويقارن البصمة بالمخزّنة؛ إن تطابقتا فالكلمة صحيحة — دون أن يرى الموقع الكلمة نفسها.
أداة الفواتير وعروض الأسعار
فواتير احترافية تُحسب وتُطبع/PDF في دقيقة.
لكن التجزئة وحدها لا تكفي. المشكلة أن ملايين الناس يستخدمون كلمات شائعة مثل 123456، وبصمتها ثابتة معروفة. جهّز المهاجمون جداول عملاقة تربط كل كلمة شائعة ببصمتها تُسمّى جداول قوس قزح (Rainbow Tables)، فيقارنون البصمات المسروقة بها فورًا. هنا يأتي التمليح (Salting): يولّد الموقع قيمة عشوائية فريدة لكل مستخدم (الـSalt)، ويدمجها مع الكلمة قبل التجزئة. النتيجة أن مستخدمَين بنفس الكلمة يحصلان على بصمتين مختلفتين تمامًا، وتصبح كل الجداول الجاهزة عديمة الفائدة.
تبقى مشكلة أخيرة: السرعة. خوارزميات مثل SHA-256 صُمّمت لتكون سريعة، والسرعة نعمة للأداء لكنها نقمة لكلمات المرور — لأن المهاجم يستطيع تجريب مليارات التخمينات في الثانية على كرت شاشة. الحل هو دوال بطيئة عمدًا مصمّمة خصيصًا لكلمات المرور مثل bcrypt وscrypt وArgon2. هذه تضيف «معامل تكلفة» يجعل حساب كل بصمة يستغرق جزءًا من الثانية — غير محسوس لك عند الدخول، لكنه يجعل تجريب المليارات مكلفًا للغاية على المهاجم.
الجدول يوضّح الفرق بين الطرق:
| الطريقة | آمنة اليوم؟ | لماذا |
|---|---|---|
| نص صريح (Plain text) | ❌ كارثي | الكلمة مكشوفة فور التسريب |
| MD5 / SHA-1 | ❌ ضعيفة | سريعة جدًا ومكسورة |
| SHA-256 بلا تمليح | ⚠️ ناقصة | عرضة لجداول قوس قزح |
| SHA-256 + Salt | 🙂 أفضل | لكن سريعة على القوة الغاشمة |
| bcrypt / scrypt / Argon2 | ✅ الموصى بها | بطيئة عمدًا + تمليح مدمج |
ما فائدة هذا لك كمستخدم؟ أولًا، افهم لماذا لا يُفترض بأي موقع محترم أن يرسل لك كلمتك الحالية عبر البريد — لو فعل، فهذا مؤشّر خطر أنه يخزّنها بنص صريح. ثانيًا، بما أن حماية الموقع تعتمد أيضًا على قوة كلمتك، استخدم كلمة طويلة وفريدة لكل حساب (ومدير كلمات مرور يريحك من حفظها)، وفعّل المصادقة الثنائية (2FA). حتى أقوى تجزئة لن تنقذ كلمة password123.