در جدول users ستون password_plain را با استفاده از تابع DES_ENCRYPT و کلید 'mysecret' رمزگذاری کرده و مقدار رمزشده را در ستون password_encrypted ذخیره کنید.
2.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 01:47 0.0
برای حل این سؤال از MySQL استفاده کنید و با یک دستور UPDATE مقدار ستون password_encrypted را برابر DES_ENCRYPT(password_plain, 'mysecret') قرار دهید؛ توجه داشته باشید که خروجی DES_ENCRYPT دادهٔ باینری است پس ستون password_encrypted را با نوع VARBINARY یا BLOB تعریف کنید و برای نمایش خوانا از HEX() استفاده کنید (مثلاً SELECT HEX(password_encrypted) ...). برای بررسی درستی میتوانید از DES_DECRYPT برای بازگشایی تستی استفاده کنید و همچنین هشدار داده شود که DES امنیت ضعیفی دارد و کلید را بهصورت امن نگهداری کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
استفاده از DES_ENCRYPT با کلید 'mysecret' در MySQL برای رمزگذاری password_plain به password_encrypted کار میکند، اما خروجی باینری است و باید در ستون VARBINARY یا BLOB ذخیره شود و برای نمایش خوانا از HEX() استفاده کنید. در بررسیهای اولیه میتوانید با DES_DECRYPT مقدار رمزگشاییشده را آزمایش کنید. نکته امنیتی این است که DES امنیت پایینی دارد و کلید باید بهصورت امن نگهداری شده و در نهایت به الگوریتم امنتری مانند AES یا hashing با bcrypt/Argon2 مهاجرت کنید. همچنین توصیه میشود دسترسی به این ستون و کلید رمزگذاری را محدود و نگهداری کلید را در محیط امن انجام دهید.
گزارش