با استفاده از تابع DECRYPT (مثلاً AES_DECRYPT) در MySQL، یک کوئری بنویسید که ستون encrypted_email از جدول users را با کلید 'secret_key' رمزگشایی کرده و نتیجه را بهعنوان email نمایش دهد.
11.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:18 0.0
برای حل این مسئله از تابع AES_DECRYPT استفاده کنید که دادهی رمزشده را بازمیگرداند؛ معمولاً خروجی باینری است پس آن را با CAST(...) AS CHAR یا CONVERT(... USING utf8mb4) به رشته تبدیل کنید، مثال: SELECT CAST(AES_DECRYPT(encrypted_email, 'secret_key') AS CHAR) AS email FROM users. توجه داشته باشید در صورت استفاده از کلید نادرست مقدار NULL بازمیگردد، اگر دادهها به صورت HEX ذخیره شدهاند ابتدا از UNHEX استفاده کنید و در محیط تولید از قرار دادن کلید در کوئری خودداری کنید و مجوزهای مناسب دسترسی را تنظیم نمایید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
استفاده از AES_DECRYPT نتیجهای باینری برمیگرداند، بنابراین باید آن را به رشته تبدیل کنید (مثلاً CAST(AES_DECRYPT(encrypted_email, 'secret_key') AS CHAR) AS email). اگر دادهها بهصورت HEX ذخیره شدهاند، از UNHEX استفاده کنید تا مقدار صحیح به دست آید. توجه کنید که در صورت کلید اشتباه مقدار NULL برمیگردد و برای محیط تولید از قرار دادن کلید در کوئری و همچنین اعمال مجوزهای مناسب خودداری کنید. همچنین برای تبدیل کاراکترها از یک مجموعه کاراکتری مناسب مانند utf8mb4 استفاده کنید (مثلاً CONVERT(... USING utf8mb4)).
گزارش