شرح صفوف ومحتوى الفقرة
التزم بقائمة التحقق الأمنية الشاملة لدورة حياة كلمات المرور في PHP 8.4 أثناء التسجيل والدخول وتصميم الجداول.
- شفر كلمات المرور حصرياً عبر
password_hash()باستخدامPASSWORD_DEFAULTأوPASSWORD_ARGON2ID. - تحقق من الدخول حصرياً عبر
password_verify()ورقِّ التجزئات القديمة عبرpassword_needs_rehash(). - افرض حداً أدنى لطول كلمة المرور (من 8 إلى 12 محرفاً) دون حذف الرموز الخاصة.
تجمع الدالة المساعدة بين التحقق الآمن والترقية التلقائية للتشفير في وحدة برمجية واحدة قابلة لإعادة الاستخدام.
| الدالة / الثابت | الوظيفة الأساسية | الاستخدام الموصى به |
|---|---|---|
password_hash() | Create salted adaptive hash | Registration & password change |
password_verify() | Timing-safe hash verification | Every login authentication check |
password_needs_rehash() | Detect outdated cost or algorithm | Immediately after successful login |
PASSWORD_DEFAULT | Current strongest default (Bcrypt 12) | Standard portable PHP deployments |
PASSWORD_ARGON2ID | Memory-hard + CPU-hard hashing | High-security PHP 8.4 servers |
PHP
<?php
function verifyAndUpgrade(string $plain, string $hash): ?string {
if (!password_verify($plain, $hash)) {
return null;
}
if (password_needs_rehash($hash, PASSWORD_DEFAULT)) {
return password_hash($plain, PASSWORD_DEFAULT);
}
return $hash;
}
echo (verifyAndUpgrade("Admin!234", password_hash("Admin!234", PASSWORD_DEFAULT)) !== null)
? "Verified OK\n" : "Rejected\n";
خلاصة المعرفة ومحطة الانتقال
ملخص الدرس
حصاد الدرسمراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي
ماذا تعلّمت في هذا الدرس؟
التزم بقائمة التحقق الأمنية الشاملة لدورة حياة كلمات المرور في PHP 8.4 أثناء التسجيل والدخول وتصميم الجداول. شفر كلمات المرور حصرياً عبر password_hash() باستخدام PASSWORD_DEFAULT أو PASSWORD_ARGON2ID. تحقق من الدخول حصرياً عبر password_verify() ورقِّ التجزئات القديمة عبر password_needs_rehash(). افرض حداً أدنى لطول كلمة المرور (من 8 إلى 12 محرفاً) دون حذف الرموز الخاصة.