با استفاده از تابع 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 است.

توسط پژوهشگر در 201 روز قبل ساعت 03:31
دسته بندی ها: MySQL MySQL for beginner
arman در 201 روز قبل ساعت 06:12

برای رمزگشایی مقدار رمزنگاری‌شده با DES_DECRYPT در MySQL باید از کلید یکسان با کلیدی که در DES_ENCRYPT استفاده شده است استفاده کنید. اگر مقدار رمزنگاری‌شده در ستون به صورت HEX ذخیره شده باشد، ابتدا UNHEX(...) کنید و سپس خروجی DES_DECRYPT را با CAST(... AS CHAR) یا CONVERT(... USING utf8) به متن تبدیل نمایید. توجه کنید که DES_DECRYPT مقدار باینری برمی‌گرداند، بنابراین تبدیل نوع الزامی است و همچنین باید مجوزهای لازم برای خواندن ستون رمزنگاری‌شده را داشته باشید. همچنین با توجه به اینکه DES الگوریتم قدیمی است، بهتر است به AES با مدیریت کلید امن و سیاست‌های مناسب کلیدگذاری مهاجرت کنید.

گزارش

1 پاسخ

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

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