"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية التحقق من كلمات مرور المستخدم بشكل آمن باستخدام وظيفة pass_verify الخاصة بـ PHP؟

كيفية التحقق من كلمات مرور المستخدم بشكل آمن باستخدام وظيفة pass_verify الخاصة بـ PHP؟

تم النشر بتاريخ 2024-11-05
تصفح:564

How to Verify User Passwords Securely with PHP\'s password_verify Function?

فك تشفير كلمات المرور المشفرة باستخدام PHP

تقوم العديد من التطبيقات بتخزين كلمات مرور المستخدم بشكل آمن باستخدام خوارزميات التشفير مثلpassword_hash. ومع ذلك، عند التحقق من صحة محاولات تسجيل الدخول، من المهم مقارنة كلمة المرور المدخلة بالإصدار المشفر والمخزن.

مشكلة التشفير

يستخدم password_hash Bcrypt، وهو - طريقة خوارزمية التجزئة، مما يعني أنه لا يمكن عكس كلمة المرور المشفرة أو فك تشفيرها. هذه هي ميزة أمان تضمن أنه حتى في حالة اختراق قاعدة البيانات، لن يتمكن المهاجمون من الوصول إلى كلمات المرور ذات النص العادي.

الحل: التحقق من كلمة المرور

للتحقق من صحة كلمات مرور المستخدم ، استخدم وظيفة التحقق من كلمة المرور:

if (password_verify('input_password', $encrypted_password)) {
    // Password matches!
} else {
    // Invalid password.
}

تقارن هذه الوظيفة كلمة مرور الإدخال بالإصدار المشفر وترجع صحيحًا إذا كانت متطابقة.

تعديل استعلام SQL الخاص بك

بدلاً من تضمين أدخل كلمة المرور في استعلام SQL، استخدم المعلمات:

$sql_script = 'SELECT * FROM USERS WHERE username=?';
يحمي هذا من هجمات حقن SQL عن طريق منع المستخدمين الضارين من معالجة الاستعلام الخاص بك.

مثال

إليك مثال لاستخدام كلمة المرور_التحقق:

$username = $_POST['username'];
$input_password = $_POST['password'];

$sql_script = 'اختر * من المستخدمين حيث اسم المستخدم=?';

إذا ($result = $conn->query($sql_script, $username)) {
    إذا ($user = $result->fetch_assoc()) {
        إذا (password_verify($input_password, $user['password'])) {
            // تسجيل الدخول ناجح!
        } آخر {
            // كلمة المرور غير صالحة.
        }
    } آخر {
        // لم يتم العثور على المستخدم.
    }
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3