در MySQL یک جدول users با ستونهای id، username و password_hashed ایجاد کنید، سپس یک کاربر با رمز عبور هششده با تابع PASSWORD() درج کنید و یک کوئری بنویسید که بررسی کند آیا یک رمز ورودی با رمز ذخیرهشده مطابقت دارد.
5.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:40 0.0
برای حل مسئله ابتدا با CREATE TABLE جدول users را با ستونهای مناسب بسازید؛ برای درج رکورد از INSERT ... VALUES و هنگام قرار دادن رمز از PASSWORD('plain_password') استفاده کنید (مثال: INSERT INTO users(username, password_hashed) VALUES('ali', PASSWORD('mypassword'))). برای بررسی صحت رمز ورودی از WHERE password_hashed = PASSWORD('input_password') یا SELECT ... WHERE username='ali' AND password_hashed = PASSWORD('input') استفاده کنید. نکته: تابع PASSWORD() خروجی هش تولید میکند و در نسخههای مختلف MySQL رفتار متفاوت یا منسوخ بودن دارد، برای کاربردهای عملیاتی قویتر از الگوریتمهای مدرن مثل SHA2 یا bcrypt استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
توجه کنید استفاده از PASSWORD() در MySQL ممکن است در نسخههای مختلف متفاوت یا منسوخ شده باشد و برای کاربردهای پایدارتر توصیه میشود از الگوریتمهای مدرن مانند bcrypt یا SHA2 استفاده کنید. اگر همچنان از PASSWORD() استفاده میکنید، کوئری بررسی میتواند به شکل WHERE username='ali' AND password_hashed = PASSWORD('input') باشد. همچنین برای امنیت بهتر از hashing با salt و استفاده از آمادهسازی پارامترها برای جلوگیری از SQL injection استفاده کنید. در طراحی جدول، به AUTO_INCREMENT بودن id و یکتا بودن ستون username توجه کنید.
گزارش