انتقل إلى محتوى الدرس

Bcrypt vs Argon2id Algorithms مقارنة خوارزمية Bcrypt وخوارزمية Argon2id

خزّن كلمات مرور المستخدمين بأمان تام في PHP 8 باستخدام password_hash وخوارزميات Bcrypt وArgon2id ودالة التحقق password_verify.
1 صفوف تعليمية
PHP
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

يدعم 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";