Apabila melaksanakan sistem log masuk, memastikan kata laluan adalah yang paling penting. Satu pendekatan yang digunakan secara meluas ialah pencincangan kata laluan, yang melibatkan penukaran kata laluan teks biasa kepada nilai yang disulitkan yang dikenali sebagai cincang. Walau bagaimanapun, jika anda menghadapi ketidakkonsistenan dalam cincang yang dijana, menghalang pengesahan kata laluan yang berjaya, artikel ini akan meneroka sebabnya dan menyediakan penyelesaian.
Cincangan_Kata Laluan menjana cincang unik untuk setiap kata laluan disebabkan oleh penggabungannya dengan garam rawak. Pendekatan rawak ini ialah langkah keselamatan yang direka untuk menghalang penyerang yang mungkin cuba meneka garam biasa yang digunakan untuk menyulitkan semua kata laluan.
Untuk mengesahkan kata laluan yang dicincang, anda harus membandingkan pengguna -memasukkan kata laluan teks biasa dengan perwakilan cincang yang disimpan menggunakan fungsi password_verify(). Pastikan kata laluan plaintext disediakan sebagai hujah pertama, manakala cincangan yang disimpan adalah yang kedua. Jika pengesahan berjaya, kata laluan sepadan.
Coretan kod berikut menunjukkan pencincangan kata laluan menggunakan password_hash():
$password = password_hash($password4, PASSWORD_DEFAULT);
Andaikan $password4 ialah plaintext kata laluan, kod ini akan menjana cincang unik (disimpan dalam $password).
Untuk mengesahkan kata laluan, gunakan sintaks di bawah:
if (password_verify($password4, $dbpassword))
Dalam contoh ini, $password4 mewakili kata laluan teks biasa, manakala $dbpassword menandakan versi cincang yang disimpan dalam pangkalan data. Jika perbandingan menghasilkan benar, kata laluan adalah sah.
Secara lalai, password_hash() menggunakan kos sebanyak 10. Untuk meningkatkan keselamatan, anda boleh meningkatkan parameter kos ini:
$password = password_hash($password4, PASSWORD_DEFAULT, ['cost' => 15]);
Dengan mematuhi garis panduan ini, anda boleh memanfaatkan password_hash dengan berkesan untuk memastikan keselamatan kata laluan dan pengesahan pengguna yang lancar dalam sistem log masuk anda.
Atas ialah kandungan terperinci Mengapa Hashes Kata Laluan Saya Tidak Konsisten dalam Sistem Log Masuk?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!