با استفاده از تابع 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 استفاده کنید و در محیط تولید از قرار دادن کلید در کوئری خودداری کنید و مجوزهای مناسب دسترسی را تنظیم نمایید.

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

استفاده از AES_DECRYPT نتیجه‌ای باینری برمی‌گرداند، بنابراین باید آن را به رشته تبدیل کنید (مثلاً CAST(AES_DECRYPT(encrypted_email, 'secret_key') AS CHAR) AS email). اگر داده‌ها به‌صورت HEX ذخیره شده‌اند، از UNHEX استفاده کنید تا مقدار صحیح به دست آید. توجه کنید که در صورت کلید اشتباه مقدار NULL برمی‌گردد و برای محیط تولید از قرار دادن کلید در کوئری و همچنین اعمال مجوزهای مناسب خودداری کنید. همچنین برای تبدیل کاراکترها از یک مجموعه کاراکتری مناسب مانند utf8mb4 استفاده کنید (مثلاً CONVERT(... USING utf8mb4)).

گزارش

1 پاسخ

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

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