PHP password_hash(), password_verify()
Masalah:
Skrip pendaftaran menggunakan password_hash() untuk penyulitan kata laluan dan skrip log masuk menggunakan password_verify() untuk pengesahan kata laluan tidak sepadan dengan kata laluan dengan betul.
Jawapan:
Berikut ialah pecahan isu dan penyelesaian kod:
Inti Utama:
Isu dan Penyelesaian:
Masalah timbul apabila menggunakan algoritma berbeza untuk pencincangan dan pengesahan. Ralat yang anda terima ("Tidak. Kata Laluan") menunjukkan bahawa kata laluan yang dicincang yang disimpan dalam pangkalan data tidak sepadan dengan kata laluan yang tidak dicincang yang dimasukkan semasa log masuk.
Kod Disemak:
Pendaftaran (Hashing):
<code class="php">$password = password_hash($password, PASSWORD_DEFAULT); // Using PASSWORD_DEFAULT or specific algorithm</code>
Log Masuk (Pengesahan):
<code class="php">if (password_verify($pwd, $row['password'])) { // Password matches... }</code>
Nota Kaki:
Atas ialah kandungan terperinci Mengapa Kata Laluan Hashed Tidak Padan Menggunakan password_hash() dan password_verify()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!