شرح صفوف ومحتوى الفقرة
تُولّد الدالة المدمجة password_hash() نصاً واحداً متكاملاً يضم معرف الخوارزمية، ومعاملات التكلفة، والملح العشوائي الفريد، وخلاصة التجزئة النهائية.
- استخدم الثابت
PASSWORD_DEFAULTليتبنى تطبيقك تلقائياً الخوارزميات الأقوى المعتمدة في إصدارات PHP المستقبلية. - استدعاء
password_hash()مرتين لنفس كلمة المرور تماماً يُنتج نصين مختلفين كلياً لأن كل استدعاء يولد ملحاً عشوائياً جديداً. - عرّف عمود كلمة المرور في قاعدة البيانات دائماً بنوع
VARCHAR(255)لضمان عدم اقتطاع التجزئات الأطول مستقبلاً.
رغم تطابق قيمة $password، فإن مقارنة $hashOne === $hashTwo ترجع No لأن كل استدعاء يدمج ملحاً عشوائياً مختلفاً.
PHP
<?php
$password = "MyVault#9876";
$hashOne = password_hash($password, PASSWORD_DEFAULT);
$hashTwo = password_hash($password, PASSWORD_DEFAULT);
$info = password_get_info($hashOne);
echo "Algo Name : " . $info['algoName'] . "\n";
echo "Same Hash? : " . ($hashOne === $hashTwo ? "Yes" : "No") . "\n";