چگونه رمزهای عبور را به صورت ایمن در پایگاه داده ذخیره کنیم؟
بیایید نگاهی بیندازیم.
ذخیره رمزهای عبور به صورت متن ساده ایده خوبی نیست زیرا هرکسی که به داخل دسترسی داشته باشد میتواند آنها را ببیند.
ذخیرهسازی هش رمزها به صورت مستقیم کافی نیست زیرا در معرض حملات پیشمحاسبه، مانند جدولهای رنگینکمان(rainbow tables) قرار دارد.
برای مقابله با حملات پیشمحاسبه، ما رمزها را salt (نمک) میکنیم.
نمک (salt) چیست ؟ بر اساس دستورالعمل های OWASP ، نمک (salt) یک رشته منحصر به فرد و تصادفی است که در فرایند هش کردن به هر رمز افزوده میشود.
چگونه یک رمز و salt را ذخیره کنیم؟
hash(salt + password)
چگونه یک رمز عبور را تأیید کنیم؟
برای تأیید یک رمز عبور، میتوان از فرآیند زیر استفاده کرد: