شرح صفوف ومحتوى الفقرة
يدعم PHP كلاً من خوارزمية PASSWORD_BCRYPT المعتمدة على تكلفة المعالج، وخوارزمية PASSWORD_ARGON2ID التي تضيف مقاومة الذاكرة ضد أجهزة الكسر المتخصصة.
- مع Bcrypt مرر الخيار
["cost" => 12](رفعت نسخة PHP 8.4 التكلفة الافتراضية لخوارزمية Bcrypt من 10 إلى 12). - مع Argon2id اضبط خيارات
memory_costوtime_costوthreadsلمقاومة هجمات البطاقات الرسومية وشرائح ASIC. - انتبه إلى أن خوارزمية Bcrypt تقتطع المدخلات التي تتجاوز 72 بايت، بينما تعالج Argon2id كامل طول النص المدخل.
تُضمّن كلتا الخوارزميتين إعدادات التكلفة والذاكرة مباشرة داخل النص الناتج، فلا تحتاج عملية التحقق لأي إعدادات خارجية.
PHP
<?php
$secret = "EnterpriseKey$2026";
$bcrypt = password_hash($secret, PASSWORD_BCRYPT, ['cost' => 12]);
$argon = password_hash($secret, PASSWORD_ARGON2ID, [
'memory_cost' => 65536,
'time_cost' => 4,
'threads' => 1,
]);
echo "Bcrypt : " . substr($bcrypt, 0, 7) . "\n";
echo "Argon2 : " . substr($argon, 0, 19) . "\n";