در جدول 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 امنیت ضعیفی دارد و کلید را به‌صورت امن نگهداری کنید.

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

استفاده از DES_ENCRYPT با کلید 'mysecret' در MySQL برای رمزگذاری password_plain به password_encrypted کار می‌کند، اما خروجی باینری است و باید در ستون VARBINARY یا BLOB ذخیره شود و برای نمایش خوانا از HEX() استفاده کنید. در بررسی‌های اولیه می‌توانید با DES_DECRYPT مقدار رمزگشایی‌شده را آزمایش کنید. نکته امنیتی این است که DES امنیت پایینی دارد و کلید باید به‌صورت امن نگهداری شده و در نهایت به الگوریتم امن‌تری مانند AES یا hashing با bcrypt/Argon2 مهاجرت کنید. همچنین توصیه می‌شود دسترسی به این ستون و کلید رمزگذاری را محدود و نگهداری کلید را در محیط امن انجام دهید.

گزارش

1 پاسخ

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

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