Rumah > pembangunan bahagian belakang > tutorial php > Mengapakah `password_verify()` PHP Mengembalikan Palsu Walaupun Bukti Kelayakan Betul?

Mengapakah `password_verify()` PHP Mengembalikan Palsu Walaupun Bukti Kelayakan Betul?

DDD
Lepaskan: 2024-12-03 20:19:16
asal
759 orang telah melayarinya

Why Does PHP's `password_verify()` Return False Despite Correct Credentials?

Password_verify Secara Konsisten Mengembalikan Palsu

Pengguna PHP 5.5 kadang-kadang menghadapi nilai pulangan palsu yang tidak dijangka daripada fungsi password_verify().

Masalah

Pertimbangkan kod berikut coretan:

// get result row (as an object)
$result_row = $result_of_login_check->fetch_object();

// using PHP 5.5's password_verify() function to check if the provided password fits
// the hash of that user's password
if (password_verify($_POST['user_password'], $result_row->user_password_hash)) {
    // ...
}
Salin selepas log masuk

Walaupun mengesahkan bahawa nilai $_POST['user_password'] dan $result_row->user_password_hash adalah betul, password_verify() terus kembali palsu.

Penyelesaian

Isu ini biasanya timbul kerana panjang lajur yang tidak mencukupi untuk menyimpan kata laluan cincang dalam pangkalan data. Manual PHP mengesyorkan menggunakan lajur dengan kapasiti sekurang-kurangnya 255 aksara, kerana kata laluan yang dicincang boleh melebihi 60 aksara panjangnya.

Untuk menyelesaikan masalah ini, pastikan lajur pangkalan data yang digunakan untuk menyimpan kata laluan yang dicincang mempunyai panjang yang mencukupi. Mengemas kini takrifan lajur kepada panjang 255 atau lebih harus menangani isu tersebut dan membenarkan password_verify() berfungsi dengan betul.

Atas ialah kandungan terperinci Mengapakah `password_verify()` PHP Mengembalikan Palsu Walaupun Bukti Kelayakan Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan