تصور کنید که یک سیستم ورود به سیستم ایجاد شده است ، و پسورد کاربر به این ترتیب حذف می شود:
Users.password = sha384 (salt1 + password + salt2)
نتیجه ی این عمل و نمکی 1
به صورت جانبی در همان جدول ذخیره می شوند ، بیایید کاربران
بگوییم.
salt2
، با این حال ، این است. در یک ردیف تصادفی در یک جدول جداگانه ذخیره شده به نام UnorderedSalts
.
هنگامی که کاربر سعی در ورود به سیستم کند ، سیستم اعتبار خود را با محاسبه چک می کند:
for (let i = 0؛ i <UnorderedSalts. طول ؛ من ++)
if (sha384 (Users.salt1 + input.password + UnorderedSalts [i]) === Users.password)
بازگشت درست است؛ // مسابقه یافت شد!
بازگشت به دروغ؛ // هیچ کبریتی پیدا نشد
از آنجا که نمک2
در همان سطر ذخیره نشده است نمک
و رمز عبور
، محاسبه باید بسته به در مورد چه تعداد کاربر تنظیم شده است.
سوال من این است:
- آیا با افزایش زمان محاسبه احتمالی ، این سیستم برای سیستم ایمن تری ایجاد می کند؟
- آیا این امنیت امنیتی رمز عبور را به خطر می اندازد؟
- یا ، اصلاً فایده ای ندارد؟