تصور کنید که یک سیستم ورود به سیستم ایجاد شده است ، و پسورد کاربر به این ترتیب حذف می شود:
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 در همان سطر ذخیره نشده است نمک و رمز عبور ، محاسبه باید بسته به در مورد چه تعداد کاربر تنظیم شده است.
سوال من این است:
- آیا با افزایش زمان محاسبه احتمالی ، این سیستم برای سیستم ایمن تری ایجاد می کند؟
- آیا این امنیت امنیتی رمز عبور را به خطر می اندازد؟
- یا ، اصلاً فایده ای ندارد؟
