Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara menggunakan metode password_hash() php ..?

Anda seharusnya memeriksa sandi mentah tanpa hash, sebagai password_verify() melakukan hash ulang kata sandi mentah menggunakan rutin hash yang digunakan saat membuat kata sandi hash.

Jika Anda melihat hasil dari password_hash() ada informasi yang disimpan dalam hash tentang rutin hash mana yang digunakan untuk membuat hash ini, dan bagaimana hash itu dihasilkan

$password = 'FredsTheMan';

$hash = password_hash($password, PASSWORD_BCRYPT);

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

Kesalahan umum lainnya di area ini adalah tidak memberikan karakter yang cukup pada kolom yang Anda gunakan pada tabel database untuk menampung hasil hash secara penuh

Hash yang dihasilkan menggunakan PASSWORD_BCRYPT adalah 60 karakter

$2y$12$QjSH496pcT5CEbzjD/vtVeH03tfHKFy36d4J0Ltp3lRtee9HDxY3K

Hati-hati, ketika hash lain disediakan di furure, hash tersebut dapat menghasilkan hash yang lebih panjang dari 60 karakter

Jadi singkatnya kode Anda harus

$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. Nomor parameter tidak valid:tidak ada parameter yang terikat

  2. Menggunakan sqlalchemy untuk kueri menggunakan beberapa kolom di mana dalam klausa

  3. Terlalu banyak peningkatan otomatis dengan ON DUPLICATE KEY UPDATE

  4. Objek MySQLConverter' tidak memiliki pengecualian atribut '_tuple_to_mysql' dengan konektor mysql

  5. MYSQL Terpotong kesalahan nilai INTEGER salah