password_verify()
التحقّق من كلمة المرور password_verify()
تقارن كلمة مرور مُدخَلة بـ hash مخزَّن سابقًا عبر password_hash، دون فك تشفير.
password_verify(password, hash) تستقبل كلمة المرور الخام المُدخَلة و الـ hash المخزَّن، وتُعيد true إن تطابقا. مقاومة لهجمات التوقيت (timing attacks) بحكم تصميمها.
لا تحاول استخراج أجزاء من الـ hash يدويًا أو "عكسه" — دائمًا مرّر النص الكامل الناتج من password_hash كما هو.
الصياغة
password_verify(string $password, string $hash): bool
📄 مثال
if (password_verify($_POST["password"], $user["password_hash"])) {
echo "تسجيل الدخول ناجح";
} else {
echo "بيانات الدخول غير صحيحة";
}أهم النقاط
| العنصر | الوظيفة |
|---|---|
| $password | كلمة المرور الخام المُدخَلة من المستخدم |
| $hash | النص الكامل الناتج من password_hash المخزَّن سابقًا |
💡 نصائح عملية
- اجعل رسالة الخطأ عامة (بريد أو كلمة مرور خاطئة) دون تحديد أيّهما، لتفادي تسريب معلومات للمهاجم
⚠️ أخطاء شائعة
- محاولة "فك تشفير" الـ hash بدل استخدام password_verify
- مقارنة كلمة المرور بـ hash قديم أُنشئ بـ md5()/sha1() بدل password_hash
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار PHP الكامل بالعربي.