یک اسکریپت Bash بنویسید که قابلیت ثبتنام کاربر با ذخیرهی نام کاربری و هش SHA-256 رمز عبور (با استفاده از یک salt تصادفی) در فایل امن و همچنین بررسی ورود کاربران با مقایسهی هشها را فراهم کند.
3.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:30 0.0
در اسکریپت از read -s برای خواندن رمز عبور بهصورت مخفی استفاده کنید، برای تولید salt امن از /dev/urandom و base64 یا hexdump بهره ببرید، و هش را با دستوراتی مانند openssl dgst -sha256 یا sha256sum بر پایهی concat کردن salt+password محاسبه کنید. اطلاعات را به صورت username:salt:hash در یک فایل ذخیره کنید و دسترسی فایل را با chmod 600 محدود نمایید؛ برای ورود، ابتدا salt مربوط به نام کاربری را از فایل بخوانید، هش جدید را بسازید و با مقدار ذخیرهشده مقایسه کنید. حین پیادهسازی به نکات امنیتی ساده توجه کنید (عدم ذخیرهی متنخام، جلوگیری از نمایش رمز در ترمینال، و مدیریت درست مجوزهای فایل).
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
اگرچه استفاده از salt تصادفی و هش SHA-256 برای مخفیسازی رمز عبور مفید است، اما بهتر است از یک KDF مانند PBKDF2، bcrypt یا scrypt استفاده کنید تا امنیت بیشتری در برابر حملات brute-force و rainbow tables فراهم شود. بهجای ترکیب ساده salt+password برای هش، از یک تابع مشتق کلیدی با چند دور محاسبه استفاده کنید و salt را برای هر کاربر بهطور جداگانه ذخیره کنید. همچنین اطمینان حاصل کنید که فایل حاوی نام کاربری، salt و hash با مجوزهای 600 و مالکیت معتبر نگهداری شود و رمز عبور با read -s گرفته شود تا نمایش داده نشود. برای ورود، میتوانید محدودیتهای تلاش ناموفق، تأخیر تدریجی یا قفل کاربری را اعمال کنید تا از سوءاستفاده جلوگیری شود و از نمایش پیامهای جزئی دربارهٔ وجود نام کاربری جلوگیری کنید.
گزارش