تكرار السؤال: …
الإجابة المختصرة
دوال SHA سريعة ومصممة للتجزئة العامة مما يسهل كسرها بمليارات المحاولات على كروت الشاشة، بينما bcrypt وArgon2 دوال بطيئة عن قصد ومقاومة لهجمات الـ GPU والذاكرة.
الشرح
تعتمد أمان كلمات المرور على بطء دالة التجزئة وارتفاع تكلفة حسابها (Cost factor / Work factor). صُممت خوارزمية Argon2 الفائزة بمسابقة تجزئة كلمات المرور (Password Hashing Competition) عام 2015 لمقاومة الهجمات العتادية الموازية عبر متطلبات ذاكرة قابلة للضبط (Memory-hard). كما تضيف هذه الدوال ملحاً تشفيرياً (Salt) عشوائياً تلقائياً لمنع هجمات جداول قوس قزح (Rainbow Tables).
مثال بالكود
import bcrypt from "bcrypt";
const hash = await bcrypt.hash(password, 12);
const isValid = await bcrypt.compare(password, hash);أخطاء شائعة
- استخدام MD5 أو SHA-256 البسيطة لحفظ كلمات المرور.