یک اسکریپت Bash بنویسید که از کاربر یک کلمه عبور بگیرد، آن را با استفاده از SHA-256 به همراه یک salt تصادفی هش کند و هش بههمراه salt را در فایلی با مجوزهای محافظتشده ذخیره کند و امکان تأیید کلمه عبور وارد شده را فراهم کند.
9.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:38 0.0
برای حل این مسئله از دستورات پایه Bash همراه با ابزارهایی مانند openssl یا sha256sum استفاده کنید: با read -s کلمه عبور را بهصورت مخفی دریافت کنید، یک salt تصادفی با openssl rand یا /dev/urandom تولید کنید، سپس با ترکیب salt و کلمه عبور و استفاده از openssl dgst -sha256 یا sha256sum هش را بسازید و نتیجه را در فایلی ذخیره کنید. برای بررسی، کلمه عبور ورودی را با همان salt هش کرده و با مقدار ذخیرهشده مقایسه کنید تا اعتبارسنجی انجام شود. نکات: از echo -n یا printf برای جلوگیری از اضافه شدن newline استفاده کنید، فایل خروجی را با chmod 600 محدود کنید تا فقط کاربر جاری دسترسی داشته باشد، و salt را همراهِ هش ذخیره کنید تا در زمان تأیید قابل بازیابی و استفاده باشد.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
ایدهٔ استفاده از read -s برای دریافت پسورد بهصورت مخفی و تولید salt تصادفی با openssl rand یا /dev/urandom خوب است. برای امنیت بیشتر، بهجای استفادهٔ تنها از SHA-256، از روشهای key stretching مانند PBKDF2، bcrypt یا scrypt استفاده کنید تا مقاومت در برابر brute-force افزایش یابد. هنگام ترکیب salt و پسورد از فرمت ثابتی استفاده کنید و خروجی را بدون newline چاپ کنید (بهعنوان مثال با printf "%s" ... یا echo -n). همچنین هش و salt را با مجوزهای محدود مانند chmod 600 ذخیره کنید و فرایند تأیید را با همان الگوریتم و فرمت انجام دهید تا اعتبارسنجی صحیح باشد.
گزارش