Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

Php की password_hash () विधि का उपयोग कैसे करें ..?

आपको कच्चे बिना हैश किए गए पासवर्ड को password_verify() . के रूप में जांचना चाहिए हैशेड पासवर्ड बनाते समय उपयोग किए गए हैश रूटीन का उपयोग करके कच्चे पासवर्ड को फिर से हैशिंग करता है।

यदि आप password_hash() . का परिणाम देखें तो हैश में जानकारी संग्रहीत है कि इस हैश को बनाने के लिए किस हैश रूटीन का उपयोग किया गया था, और इसे कैसे उत्पन्न किया गया था

$password = 'FredsTheMan';

$hash = password_hash($password, PASSWORD_BCRYPT);

if (password_verify($password, $hash)) { 
   return true;
} else {
    return false;
}

इस क्षेत्र में एक और आम गलती है कि आप डेटाबेस टेबल पर उपयोग किए जाने वाले कॉलम को हैश का पूरा परिणाम रखने के लिए पर्याप्त वर्ण नहीं दे रहे हैं

PASSWORD_BCRYPT का उपयोग करके उत्पन्न हैश 60 वर्णों का है

$2y$12$QjSH496pcT5CEbzjD/vtVeH03tfHKFy36d4J0Ltp3lRtee9HDxY3K

सावधान रहें, जब अन्य हैश भविष्य में प्रदान किए जाते हैं, तो उनका परिणाम हैश में 60 वर्णों से अधिक लंबा हो सकता है

तो संक्षेप में आपका कोड होना चाहिए

$this->db->select('password');
$this->db->from('usersdetails');
$this->db->where('email', $email);
$this->db->limit(1);
$query = $this->db->get();
$pwd_from_db = $query->row()->password;

if (password_verify($this->input->post('password'), $pwd_from_db)) {
   return true;
} else {
    return false;
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. जावा MySQL अद्यतन क्वेरी

  2. URL से मूल्य कैसे प्राप्त करें

  3. MYSQL - ग्रुप बाय लिमिट

  4. ORDER BY क्लॉज में कस्टम ऑर्डर कैसे परिभाषित करें?

  5. बाइनरी कॉलेशन का उपयोग करने से क्या प्रभाव पड़ता है?