password_hash()
تجزئة كلمة المرور password_hash()
تُنتج نصًّا مُجزَّأً آمنًا لكلمة مرور، يحتوي الخوارزمية والملح (salt) والنتيجة معًا.
password_hash(password, algo, options) هي الطريقة الرسمية والآمنة لتجزئة كلمات المرور في PHP. PASSWORD_DEFAULT يختار أقوى خوارزمية مدعومة حاليًا (bcrypt وقت كتابة هذا المرجع) وقد تتغيّر تلقائيًا مستقبلًا — لذلك خزّن الناتج في عمود واسع (255 حرفًا مقترح).
لا حاجة لتخزين ملح منفصل: الـ hash الناتج يحمل كل ما يلزم للتحقّق لاحقًا عبر password_verify(). لا تستخدم md5() أو sha1() لكلمات المرور أبدًا — صُمّمتا للسرعة لا للأمان.
الصياغة
password_hash(string $password, string|int|null $algo, array $options = []): string
📄 مثال
$hash = password_hash($_POST["password"], PASSWORD_DEFAULT); // خزّن $hash في عمود VARCHAR(255)
أهم النقاط
| العنصر | الوظيفة |
|---|---|
| PASSWORD_DEFAULT | أقوى خوارزمية مدعومة حاليًا (bcrypt)، قد تتغيّر مستقبلًا |
| PASSWORD_BCRYPT | فرض bcrypt صراحة بدل الافتراضي المتغيّر |
💡 نصائح عملية
- لا تمرّر salt يدويًا — password_hash يولّده تلقائيًا من مصدر عشوائي آمن
⚠️ أخطاء شائعة
- استخدام md5()/sha1() لكلمات المرور
- عمود تخزين ضيّق لا يتّسع لطول hash الحديث (استخدم 255 حرفًا)
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار PHP الكامل بالعربي.