با استفاده از تابع 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 استفاده نمایید و مطمئن شوید کاربر دیتابیس مجوزهای لازم را دارد.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای نگهداری رمز عبور بهتر است از رمزنگاری یکطرفهٔ قوی مثل bcrypt یا Argon2 استفاده کنید و از DES که امروز ضعیف است پرهیز کنید؛ تنها اگر واقعا نیاز به بازگردانی متن دارید از AES_ENCRYPT با مدیریت کلید مناسب استفاده کنید. توجه کنید DES_ENCRYPT خروجی باینری تولید میکند، بنابراین ستون باید VARBINARY مناسب باشد و برای نمایش از HEX() بهره ببرید. همچنین مدیریت امن کلید و دسترسیهای کاربر دیتابیس حیاتی است تا کلید یا دادههای رمزابهراهنه فاش نشود. پیش از اعمال UPDATE در محیط تولید، از دیتابیس نسخه پشتیبان بگیرید و ابتدا روی کپی تست کنید.
گزارش