شرح صفوف ومحتوى الفقرة
يُمنع تخزين كلمات المرور كنص صريح أو بتشفير قابل للعكس؛ وبدلاً من ذلك يوفر Laravel واجهة Hash لتوليد تجزئة أحادية الاتجاه بخوارزمية Bcrypt أو Argon2. تولد دالة Hash::make بصمة مملحة عشوائياً، بينما تتحقق دالة Hash::check بأمان من تطابق كلمة المرور المدخلة مع البصمة المخزنة.
- توليد البصمة (Hash::make): تنتج تجزئة مملحة فريدة في كل مرة حتى لو تشابهت كلمتا مرور لمستخدمين مختلفين.
- فحص التطابق (Hash::check): تقارن النص المدخل بالبصمة المخزنة بزمن ثابت يحمي من هجمات قياس التوقيت.
- فحص الترقية (needsRehash): تكشف ما إذا كانت البصمة القديمة تحتاج إعادة تجزئة بعد زيادة جولات التكلفة.
PHP
use Illuminate\Support\Facades\Hash;
$hashed = Hash::make($request->input('password'));
if (Hash::check($plainInput, $user->password)) {
// Password verified!
}