Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Mengesahkan Kata Laluan Pengguna Tanpa Menyahsulit Cincang Menggunakan Fungsi `password_hash` PHP?

Bagaimana untuk Mengesahkan Kata Laluan Pengguna Tanpa Menyahsulit Cincang Menggunakan Fungsi `password_hash` PHP?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-02 02:01:03139semak imbas

How to Verify User Passwords Without Decrypting Hashes Using PHP's `password_hash` Function?

Penyahsulitan Cincang Kata Laluan dalam PHP dengan Fungsi Password_hash

Soalan:

Anda perlu menyahsulit kata laluan yang disulitkan menggunakan fungsi password_hash. Dengan mengandaikan kata laluan yang dicincang disimpan dalam pangkalan data dan anda mempunyai kata laluan teks biasa yang dimasukkan oleh pengguna, bagaimanakah anda menentukan sama ada kata laluan tersebut sepadan tanpa menjejaskan keselamatan?

Jawapan:

Bcrypt ialah algoritma pencincangan yang digunakan oleh fungsi password_hash, dan ia tidak boleh diterbalikkan. Oleh itu, tiada cara langsung untuk menyahsulit kata laluan yang dicincang.

Sebaliknya, untuk mengesahkan kata laluan pengguna, ikut langkah berikut:

  1. Dapatkan semula kata laluan yang dicincang daripada pangkalan data menggunakan pertanyaan SQL yang hanya memilih nama pengguna. Ini memastikan keselamatan dengan menghalang kelemahan suntikan SQL.
  2. Gunakan fungsi password_verify untuk membandingkan kata laluan teks biasa pengguna dengan kata laluan cincang. Ia kembali benar jika ia sepadan, menunjukkan log masuk yang sah.

Contoh Kod untuk Pengesahan Kata Laluan:

<code class="php">// Assume $hash is the hashed password from the database
if (password_verify($inputPassword, $hash)) {
    echo 'Password is valid!';
} else {
    echo 'Invalid password.';
}</code>

Nota Penting:

Adalah penting untuk menentukan parameter input pengguna dalam pertanyaan SQL untuk mengelakkan serangan suntikan SQL. Rujuk jawapan Stack Overflow yang disediakan untuk panduan tentang amalan ini.

Atas ialah kandungan terperinci Bagaimana untuk Mengesahkan Kata Laluan Pengguna Tanpa Menyahsulit Cincang Menggunakan Fungsi `password_hash` PHP?. 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