با استفاده از تابع DES_ENCRYPT مقدار ستون password را در جدول users با کلید 'secret_key' رمزگذاری کنید و نتیجه را در ستون encrypted_password ذخیره نمایید.

29.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 04:15

0.0

ابتدا یک ستون مناسب برای داده‌های باینری اضافه کنید (مثلاً VARBINARY)، سپس با یک دستور UPDATE مقدار ستون encrypted_password را برابر DES_ENCRYPT(password, 'secret_key') قرار دهید؛ نمونه: ALTER TABLE users ADD COLUMN encrypted_password VARBINARY(255); UPDATE users SET encrypted_password = DES_ENCRYPT(password, 'secret_key'); توجه داشته باشید که DES_ENCRYPT دادهٔ باینری برمی‌گرداند، برای نمایش قابل‌خواندن می‌توانید از HEX() استفاده کنید، و برای استفادهٔ عملی و ایمن‌تر ترجیحاً از الگوریتم‌های قوی‌تری مانند AES استفاده نمایید و مطمئن شوید کاربر دیتابیس مجوزهای لازم را دارد.

توسط پژوهشگر در 198 روز قبل ساعت 04:15
دسته بندی ها: MySQL MySQL for beginner
reyhaneh در 198 روز قبل ساعت 04:16

برای نگهداری رمز عبور بهتر است از رمزنگاری یک‌طرفهٔ قوی مثل bcrypt یا Argon2 استفاده کنید و از DES که امروز ضعیف است پرهیز کنید؛ تنها اگر واقعا نیاز به بازگردانی متن دارید از AES_ENCRYPT با مدیریت کلید مناسب استفاده کنید. توجه کنید DES_ENCRYPT خروجی باینری تولید می‌کند، بنابراین ستون باید VARBINARY مناسب باشد و برای نمایش از HEX() بهره ببرید. همچنین مدیریت امن کلید و دسترسی‌های کاربر دیتابیس حیاتی است تا کلید یا داده‌های رمزابه‌راهنه فاش نشود. پیش از اعمال UPDATE در محیط تولید، از دیتابیس نسخه پشتیبان بگیرید و ابتدا روی کپی تست کنید.

گزارش

1 پاسخ

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

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