Rumah >pangkalan data >tutorial mysql >Bagaimanakah Penyimpanan Kata Laluan Selamat `password_hash()` dan `password_verify()` PHP 5.5?

Bagaimanakah Penyimpanan Kata Laluan Selamat `password_hash()` dan `password_verify()` PHP 5.5?

DDD
DDDasal
2024-12-22 21:49:18425semak imbas

How Can PHP 5.5's `password_hash()` and `password_verify()` Secure Password Storage?

Menggunakan kata laluan_hash dan password_verify PHP 5.5 Fungsi untuk Melindungi Storan Kata Laluan

Menyimpan kata laluan dengan selamat adalah penting untuk mengekalkan integriti data pengguna. PHP 5.5 memperkenalkan fungsi password_hash() dan password_verify() untuk menyediakan cara yang selamat dan cekap untuk melakukan ini.

password_hash() dan Salt

Tidak seperti storan kata laluan lama kaedah, password_hash() menggunakan garam unik untuk setiap kata laluan. Garam ialah rentetan rawak yang menghalang serangan jadual pelangi, di mana penyerang mencuba cincang kata laluan biasa.

Menyimpan Kata Laluan dan Garam

Untuk menyimpan kata laluan dengan PHP 5.5's password_hash(), ikuti langkah berikut:

  1. Jana garam menggunakan uniqid() atau sejenisnya fungsi.
  2. Panggil password_hash() dengan kata laluan, PASSWORD_BCRYPT dan tatasusunan pilihan yang mengandungi garam dan kos (disyorkan: 10-12).
  3. Fungsi password_hash() akan mengembalikan a rentetan cincang yang merangkumi kedua-dua cincang dan garam.

Contoh:

$options = ["cost" => 10, "salt" => uniqid()];
$hashAndSalt = password_hash($password, PASSWORD_BCRYPT, $options);

Mengesahkan Kata Laluan

Untuk mengesahkan kata laluan, ambil kata laluan yang disimpan hashAndSalt dari pangkalan data dan panggil password_verify() dengan kata laluan yang disediakan dan disimpan hashAndSalt.

Contoh:

if (password_verify($password, $hashAndSalt)) {
    // Password verified successfully
}

Langkah Keselamatan Tambahan

Sementara password_hash() menyediakan cara yang selamat untuk menyimpan kata laluan, disyorkan untuk:

  • Gunakan parameter kos 10 atau lebih tinggi.
  • Gunakan mysqli dan bukannya mysql untuk pengendalian pangkalan data.
  • Laksanakan teknik perlindungan suntikan SQL.

Atas ialah kandungan terperinci Bagaimanakah Penyimpanan Kata Laluan Selamat `password_hash()` dan `password_verify()` PHP 5.5?. 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