كيف يعمل تجزئة كلمة مرور MySQL؟

يستخدم MySQL التجزئة التشفيرية لتخزين كلمات مرور المستخدمين بأمان. بدلاً من تخزين كلمات المرور كنص عادي، يقوم MySQL بتحويلها إلى سلاسل تجزئة ثابتة الطول باستخدام دوال رياضية أحادية الاتجاه. عندما يحاول المستخدم تسجيل الدخول، يقوم MySQL بتجزئة كلمة المرور المقدمة ويقارنها بالتجزئة المخزنة. إذا تطابقت، يتم المصادقة بنجاح. يضمن هذا النهج أنه حتى إذا تمكن شخص ما من الوصول إلى قاعدة البيانات، لا يمكنه قراءة كلمات مرور المستخدمين مباشرة.

يطبق خوارزمية MySQL Native Password الحديثة تجزئة SHA-1 مرتين: SHA1(SHA1(password)). توفر هذه التجزئة المزدوجة طبقة إضافية من الأمان. السلسلة السداسية عشرية المكوّنة من 40 حرفًا تُسبق بنجمة (*) للدلالة على أنها كلمة مرور مجزأة، مثل *2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19.

وصف الأداة

هذه MySQL Password Hash Generator تُنشئ تجزئات مصادقة متوافقة مع قواعد بيانات MySQL وMariaDB. أدخل أي كلمة مرور وستحصل فورًا على التجزئة المقابلة التي يمكن استخدامها مباشرة في عبارات SQL مثل CREATE USER أو ALTER USER. تدعم الأداة كلًا من تنسيق MySQL Native Password الحديث (MySQL 4.1 وما فوق) وتنسيق Old Password القديم للأنظمة السابقة.

أمثلة

MySQL Native Password (4.1+):

  • الإدخال: mypassword
  • الإخراج: *FABE5482D5AADF36D028AC443D117BE1180B9725

Old Password (Pre-4.1):

  • الإدخال: mypassword
  • الإخراج: 162eebfb6477e5d3

استخدام SQL:

-- إنشاء مستخدم بكلمة مرور مجزأة
CREATE USER 'username'@'localhost' IDENTIFIED BY PASSWORD '*FABE5482D5AADF36D028AC443D117BE1180B9725';

-- تحديث كلمة مرور مستخدم موجود
ALTER USER 'username'@'localhost' IDENTIFIED BY PASSWORD '*FABE5482D5AADF36D028AC443D117BE1180B9725';

الميزات

  • MySQL Native Password: يولد تجزئات SHA1(SHA1(password)) لـ MySQL 4.1+ وMariaDB
  • Legacy Old Password: يدعم تنسيق التجزئة قبل MySQL 4.1 لضمان التوافق العكسي
  • التجزئة في الوقت الفعلي: يتم تحديث التجزئة فورًا أثناء الكتابة
  • تبديل إظهار كلمة المرور: إظهار أو إخفاء حقل كلمة المرور لتسهيل الإدخال
  • نسخ بنقرة واحدة: نسخ التجزئة المُولدة إلى الحافظة بسرعة

حالات الاستخدام

  • إنشاء حسابات مستخدمين في MySQL بكلمات مرور مُجزأة مسبقًا في سكريبتات النشر
  • نقل المستخدمين بين قواعد بيانات MySQL مع الحفاظ على تجزئات كلمات المرور
  • اختبار والتحقق من إعدادات مصادقة MySQL
  • توليد تجزئات كلمات مرور لتطبيقات متوافقة مع MySQL
  • استكشاف مشكلات المصادقة عبر مقارنة التجزئات المتوقعة مع الفعلية

صيغ التجزئة المدعومة

الصيغة الخوارزمية إصدار MySQL مثال على الإخراج
MySQL Native Password SHA1(SHA1(password)) 4.1+ *2470C0C06DEE42FD...
Old Password تجزئة مخصصة Pre-4.1 6f8c114b58f2ce9e

اعتبارات الأمان

تُعد تجزئة MySQL Native Password الصيغة الموصى بها لجميع إصدارات MySQL وMariaDB الحديثة. يُنظر إلى صيغة Old Password على أنها غير آمنة ويجب استخدامها فقط للتوافق مع الأنظمة القديمة التي لا يمكن ترقيتها. قدم MySQL 8.0 الخوارزمية caching_sha2_password كالإعداد الافتراضي الجديد، لكن يظل mysql_native_password مدعومًا على نطاق واسع ومستخدمًا بشكل شائع.