با استفاده از تابع DES_DECRYPT در MySQL، مقدار رمزنگاریشده ستون password در جدول users را که با DES_ENCRYPT ذخیره شده با کلید 'mykey' برای رکورد با id = 5 رمزگشایی و نمایش دهید.
14.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:31 0.0
برای حل این سوال باید از تابع DES_DECRYPT(column, 'کلید') در MySQL استفاده کنید؛ اگر مقدار رمز به صورت HEX ذخیره شده باشد ابتدا از UNHEX() استفاده کنید و چون DES_DECRYPT مقدار باینری برمیگرداند، نتیجه را با CAST(... AS CHAR) یا CONVERT(... USING utf8) به متن تبدیل کنید. همچنین دقت کنید که همان کلید مورد استفاده در DES_ENCRYPT را بکار ببرید و مجوزهای لازم برای خواندن ستون رمزنگاریشده را داشته باشید؛ این سوال مربوط به حوزه امنیت و مجوزها و توابع/عبارات MySQL است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای رمزگشایی مقدار رمزنگاریشده با DES_DECRYPT در MySQL باید از کلید یکسان با کلیدی که در DES_ENCRYPT استفاده شده است استفاده کنید. اگر مقدار رمزنگاریشده در ستون به صورت HEX ذخیره شده باشد، ابتدا UNHEX(...) کنید و سپس خروجی DES_DECRYPT را با CAST(... AS CHAR) یا CONVERT(... USING utf8) به متن تبدیل نمایید. توجه کنید که DES_DECRYPT مقدار باینری برمیگرداند، بنابراین تبدیل نوع الزامی است و همچنین باید مجوزهای لازم برای خواندن ستون رمزنگاریشده را داشته باشید. همچنین با توجه به اینکه DES الگوریتم قدیمی است، بهتر است به AES با مدیریت کلید امن و سیاستهای مناسب کلیدگذاری مهاجرت کنید.
گزارش