Avatar ·

كيفية استخدام bcrypt بشكل صحيح لتجزئة كلمات المرور في PHP؟

مرحباً بالجميع! أنا مطور PHP مبتدئ ولا أستطيع فهم التخزين الآمن لكلمات المرور. حالياً أستخدم دالة md5() أو sha1() للتجزئة، لكنني قرأت في مكان ما أن هذا غير صحيح وغير آمن. يقولون إنه يجب استخدام bcrypt.

<?php
// الكود الحالي (أعلم أنه سيء)
$password = 'my_secret_pass';
$hash = md5($password);
// أحفظ $hash في قاعدة البيانات

// التحقق عند تسجيل الدخول
if (md5($_POST['password']) == $hash_from_db) {
    echo "دخول ناجح!";
}
?>

سمعت عن bcrypt، لكنني لا أفهم كيفية تثبيته واستخدامه. يبدو أن PHP تحتوي على دالة مدمجة، لكنني لا أعرف اسمها وكيفية العمل بها بشكل صحيح. كما أنني مرتبك بشأن ضرورة تحديد "ملح" (salt) — ما هو وأين يتم تخزينه؟ هل يجب إنشاء ملح جديد لكل كلمة مرور؟ وكيف يتم التحقق من كلمة المرور عند تسجيل دخول المستخدم؟

يرجى توضيح الخطوات