Menyahsulit Cincang Kata Laluan dalam PHP: Mustahil dengan Bcrypt
Salah satu konsep asas kriptografi ialah sifat fungsi pencincangan yang tidak boleh diubah. Bcrypt, algoritma asas yang digunakan oleh fungsi password_hash() PHP, berada di bawah kategori ini. Setelah kata laluan dicincang, menjadi mustahil untuk mendapatkan semula nilai asalnya.
Memahami Pengesahan Kata Laluan
Daripada menyahsulit cincang, pendekatan yang lebih selamat untuk mengesahkan pengguna ialah pengesahan kata laluan. Ini melibatkan membandingkan kata laluan pengguna yang dimasukkan dengan cincang yang disimpannya. PHP menyediakan fungsi password_verify() khusus untuk tujuan ini.
Contoh Kod untuk Pengesahan Kata Laluan
<code class="php">$hash = 'y$BCryptRequires22Chrcte/VlQH0piJtjXl.0t1XkA8pw9dMXTpOq'; if (password_verify('rasmuslerdorf', $hash)) { echo 'Password is valid!'; } else { echo 'Invalid password.'; }</code>
Pertanyaan SQL Diubahsuai
Memandangkan kami kini mengesahkan kata laluan dalam PHP, pertanyaan SQL untuk mendapatkan semula data pengguna hendaklah hanya memasukkan nama pengguna:
<code class="sql">$sql_script = 'SELECT * FROM USERS WHERE username=?';</code>
Melindungi Terhadap SQL Injection
Contoh pertanyaan SQL terdedah kepada serangan suntikan SQL. Untuk mengurangkan risiko ini, parameterkan input dengan menggunakan pernyataan yang disediakan atau pertanyaan berparameter.
Kesimpulan
Hashing kata laluan dengan Bcrypt memastikan keselamatannya, tetapi ini juga bermakna tiada cara untuk menyahsulit mereka. Sebaliknya, gunakan pengesahan kata laluan untuk mengesahkan pengguna dengan membandingkan kata laluan yang mereka masukkan dengan cincang yang disimpan. Selain itu, sentiasa lindungi pertanyaan SQL anda daripada serangan suntikan dengan menggunakan parameterisasi input yang betul.
Atas ialah kandungan terperinci Bolehkah Anda Menyahsulit Hash Kata Laluan Bcrypt dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!