CodeShot
Midسختی 3 از ۵· در 25٪ مصاحبه‌های این حوزه پرسیده شده

چرا رمز عبور باید با Hash و Salt ذخیره شود، نه رمزنگاری معمولی؟

نشان کردن

پاسخ کوتاه

رمز عبور نیاز به بازگشت‌پذیری ندارد؛ Hash کند و مقاوم (مثل bcrypt) همراه Salt یکتا، در برابر حملات جدول Rainbow و Brute Force مقاوم است.

پاسخ کامل

اگر رمز عبور فقط رمزنگاری (Encrypt) شود، در صورت لو رفتن کلید، همهٔ رمزها قابل بازیابی‌اند؛ Hashing یک‌طرفه است و Salt یکتا برای هر کاربر از تکرار الگوی حمله در مقیاس جلوگیری می‌کند.

مثال کد

csharp\nstring hash = BCrypt.HashPassword(password);\n

اشتباه رایج

استفاده از یک Hash سریع و عمومی مثل SHA-256 ساده بدون Salt برای رمز عبور.