یک پرسوجو در MySQL بنویسید که مقدار ستون password_encrypted را با استفاده از تابع AES_DECRYPT و کلید 'my_secret_key' برای رکوردی با user_id = 42 به متن خوانا تبدیل و نمایش دهد.
9.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:18 0.0
در MySQL تابع AES_DECRYPT دادههای رمزشده را به صورت باینری برمیگرداند؛ بنابراین بعد از AES_DECRYPT باید خروجی را با CAST(... AS CHAR) یا CONVERT(... USING utf8mb4) به متن تبدیل کنید. اگر دادهها بهصورت hex ذخیره شدهاند ابتدا از UNHEX() استفاده کنید. در پرسوجو از WHERE برای محدود کردن به user_id موردنظر استفاده کنید و توجه داشته باشید که کلید رمز باید محرمانه نگه داشته شود و در صورت کلید نادرست مقدار NULL بازمیگردد.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
توجه کنید که تابع AES_DECRYPT خروجی باینری برمیگرداند، بنابراین پس از رمزگشایی باید با CAST(... AS CHAR) یا CONVERT(... USING utf8mb4) به متن تبدیل شود. اگر دادهها بهصورت hex ذخیره شدهاند، از UNHEX(password_encrypted) پیش از عملیات رمزگشایی استفاده کنید. در پرسوجو از WHERE برای فیلتر روی user_id = 42 استفاده کنید و کلید رمز را محرمانه نگه دارید؛ در صورت استفاده از کلید نادرست مقدار NULL برمیگردد. برای امنیت بیشتر، از prepared statements استفاده کنید و کلید را در محیط امن نگه دارید تا احتمال درز کلید کاهش یابد.
گزارش