یک اسکریپت Bash بنویسید که برای یک نام کاربری، رمز عبور را بهصورت امن با salt و هش SHA-256 ذخیره کند و قابلیت تأیید رمز وارد شده را نیز داشته باشد.
11.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:44 0.0
در این اسکریپت از خواندن رمز بهصورت پنهان (read -s) استفاده کنید، برای ایجاد salt از openssl rand -hex 16 یا مشابه آن بهره ببرید، سپس salt را به رمز متصل کرده و هش SHA-256 را با دستوراتی مثل openssl dgst -sha256 یا sha256sum محاسبه نمایید؛ نتیجه را در فایلی با ساختار username:salt:hash ذخیره کنید و دسترسی فایل را با chmod 600 محدود کنید. برای تأیید، مقدار ذخیرهشده را بخوانید، از کاربر رمز را بگیرید، hash جدید را با همان salt محاسبه کرده و با مقدار ذخیرهشده مقایسه کنید؛ نکات امنیتی: هرگز رمز را چاپ نکنید، از salt یکتا برای هر کاربر استفاده کنید و فایل حاوی هشها را محافظت نمایید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکته امنیتی: رمز را با read -s بخوانید و هرگز چاپش نکنید. برای هر کاربر salt یکتا بسازید (openssl rand -hex 16) و فایل username:salt:hash را با chmod 600 محافظت کنید و نوشتن اتمیک انجام دهید. هش را با ترکیب salt و password و با printf بدون newline محاسبه کنید (مثلاً با openssl dgst -sha256 یا sha256sum). برای تأیید، hash جدید با همان salt را محاسبه کرده و با مقدار ذخیرهشده مقایسه کنید و در این فرایند رمز را هرگز نمایش ندهید.
گزارش