Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah `password_hash()` dan `password_verify()` PHP 5.5 Boleh Menyimpan dan Mengesahkan Kata Laluan Pengguna dengan Selamat?

Bagaimanakah `password_hash()` dan `password_verify()` PHP 5.5 Boleh Menyimpan dan Mengesahkan Kata Laluan Pengguna dengan Selamat?

Susan Sarandon
Susan Sarandonasal
2024-12-23 04:00:14293semak imbas

How Can PHP 5.5's `password_hash()` and `password_verify()` Securely Store and Verify User Passwords?

Penyimpanan dan Pengesahan Kata Laluan dengan PHP 5.5

Apabila melindungi kata laluan pengguna, adalah penting untuk menggunakan teknik penyulitan yang teguh untuk menghalang akses tanpa kebenaran. PHP 5.5 memperkenalkan fungsi password_hash() dan password_verify() untuk tujuan ini, menawarkan penyelesaian yang mudah dan selamat untuk pengendalian kata laluan.

Storan Kata Laluan yang Betul

Kod yang disediakan menunjukkan pendekatan yang salah untuk penyimpanan kata laluan. Anda tidak seharusnya menyimpan garam secara berasingan tetapi menyimpan kedua-dua hash dan garam. Fungsi password_hash() menjana rentetan yang menggabungkan kedua-dua elemen.

Cara yang betul untuk menyimpan kata laluan ialah:

$hashAndSalt = password_hash($password, PASSWORD_BCRYPT);
// Insert $hashAndSalt into the database

Pengesahan Kata Laluan

Untuk mengesahkan kata laluan, dapatkan semula $hashAndSalt yang disimpan sebelum ini daripada pangkalan data dan gunakannya dengan password_verify() fungsi:

if (password_verify($password, $hashAndSalt)) {
    // Verified
}

Pertimbangan Keselamatan Tambahan

Walaupun fungsi password_hash() menyediakan mekanisme penyimpanan kata laluan yang selamat, adalah penting untuk mematuhi amalan terbaik keselamatan yang lain. Pertimbangkan untuk menggunakan:

  • sambungan mysqli dan bukannya mysql (ditamatkan dalam PHP5.5)
  • Pengesahan input untuk menghalang suntikan SQL

Atas ialah kandungan terperinci Bagaimanakah `password_hash()` dan `password_verify()` PHP 5.5 Boleh Menyimpan dan Mengesahkan Kata Laluan Pengguna dengan Selamat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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