در 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 استفاده کنید.

توسط پژوهشگر در 202 روز قبل ساعت 02:40
دسته بندی ها: MySQL MySQL for beginner
reyhaneh در 202 روز قبل ساعت 08:52

توجه کنید استفاده از PASSWORD() در MySQL ممکن است در نسخه‌های مختلف متفاوت یا منسوخ شده باشد و برای کاربردهای پایدارتر توصیه می‌شود از الگوریتم‌های مدرن مانند bcrypt یا SHA2 استفاده کنید. اگر همچنان از PASSWORD() استفاده می‌کنید، کوئری بررسی می‌تواند به شکل WHERE username='ali' AND password_hashed = PASSWORD('input') باشد. همچنین برای امنیت بهتر از hashing با salt و استفاده از آماده‌سازی پارامترها برای جلوگیری از SQL injection استفاده کنید. در طراحی جدول، به AUTO_INCREMENT بودن id و یکتا بودن ستون username توجه کنید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری