یک جدول users بسازید با ستونهای id (PRIMARY KEY)، username و password بهطوری که هنگام INSERT مقدار password با استفاده از تابع DES_ENCRYPT و یک کلید ثابت رمزگذاری شود و سپس یک کوئری بنویسید که با استفاده از DES_DECRYPT بررسی کند آیا یک نامکاربری و رمز عبور ورودی با رکورد ذخیرهشده مطابقت دارد.
1.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:10 0.0
برای حل این مسئله از MySQL و توابع داخلی DES_ENCRYPT و DES_DECRYPT استفاده کنید؛ ستون password را به صورت VARBINARY یا BLOB تعریف کنید چون خروجی DES_ENCRYPT دادهٔ باینری است. هنگام INSERT از DES_ENCRYPT('plain_password', 'your_key') استفاده کنید و برای مقایسهٔ ورودی رمز از DES_DECRYPT(password, 'your_key') = 'input_password' یا HEX() برای نمایش خواناتر بهره ببرید. نکتهها: کلید باید یکسان باشد تا رمزگشایی ممکن شود، لازم است دسترسی مناسب به توابع رمزگذاری داشته باشید و بهعنوان توصیه امنیتی در محیطهای تولیدی از الگوریتمهای قویتر مانند AES استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
بهخوبی بهخاطر بسپارید که خروجی DES_ENCRYPT دادهٔ باینری است و باید ستون password را VARBINARY یا BLOB تعریف کنید. هنگام INSERT از DES_ENCRYPT('plain_password','your_key') استفاده کنید و برای مقایسه، DES_DECRYPT(password,'your_key') = 'input_password' یا از HEX(password) برای نمایش خواناتر بهره ببرید. کلید رمزگذاری باید همواره یکسان باشد تا رمزگشایی ممکن شود و دسترسی مناسب به توابع رمزگذاری ضروری است. توصیه امنیتی: DES الگوریتم منسوخ و کمامن است؛ در محیط تولیدی از AES با کلید و مدیریت کلید قوی استفاده کنید.
گزارش