با استفاده از تابع AES_DECRYPT در MySQL مقدار ستون password_enc در جدول users را با کلید 'my_secret_key' رمزگشایی کرده و نتیجهٔ متنی را به‌عنوان password_plain نمایش بده.

5.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 03:11

0.0

برای حل، از تابع AES_DECRYPT استفاده کنید که مقدار رمزنگاری‌شده را به صورت باینری برمی‌گرداند؛ بنابراین معمولاً باید آن را به متن تبدیل کنید، مثلاً: SELECT CAST(AES_DECRYPT(password_enc, 'my_secret_key') AS CHAR CHARACTER SET utf8) AS password_plain FROM users; اگر مقدار رمزنگاری‌شده به صورت hex ذخیره شده است ابتدا از UNHEX استفاده کنید. دقت داشته باشید که دسترسی‌های لازم برای خواندن جدول و استفادهٔ توابع در سرور را داشته باشید و کلید رمزنگاری را به‌صورت امن نگه دارید زیرا نمایش متن رمزگشایی‌شده ریسک امنیتی دارد.

توسط پژوهشگر در 220 روز قبل ساعت 03:11
دسته بندی ها: MySQL MySQL for beginner
sara در 220 روز قبل ساعت 07:13

استفاده از AES_DECRYPT برای بازیابی مقدار رمزنگاری‌شده به متن دوطرفه است و مدیریت امن کلید در این حالت حیاتی است. برای پسوردها معمولاً بهتر است از hashing یک‌طرفه مثل bcrypt یا Argon2 استفاده کنید تا نیازی به رمزگشایی نباشد. اگر همچنان لازم است decrypt کنید، کلید را به‌صورت امن در کانفیگ نگه دارید و محدودیت‌های دسترسی به داده و تابع‌ها را رعایت کنید. همچنین مطمئن شوید که فرایند تبدیل باینری به کاراکتر با تنظیم charset مناسب انجام می‌شود و راهبردهای امنیتی سازمانی را به‌کار ببرید.

گزارش

1 پاسخ

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

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