Hashing Kata Laluan Selamat dengan Garam dalam PHP
Soalan:
- Apakah itu amalan terbaik untuk perlindungan kata laluan selamat dalam PHP, dengan mengambil kira batasan MD5 dan keperluan untuk keseimbangan antara kelajuan dan keselamatan?
Jawapan:
Mekanisme Hashing dan Garam
- Dalam PHP, bcrypt ialah mekanisme pencincangan kata laluan yang disyorkan. Ia menggunakan fungsi intensif pengiraan yang dipanggil blowfish, menjadikannya sukar untuk memaksa kata laluan secara kasar.
- Salt ialah nilai rawak yang ditambahkan pada kata laluan sebelum pencincangan, yang menghalang kata laluan yang sama daripada menghasilkan cincang yang sama. Ia meningkatkan keselamatan terhadap serangan meja pelangi.
- Garam yang baik mempunyai entropi yang tinggi, memastikan keunikan dan ketidakpastian.
Memilih Fungsi Pencincangan
- Bcrypt ialah pilihan yang paling selamat.
- Jika bcrypt tidak tersedia, gunakan scrypt, PBKDF2 dengan cincang SHA2 atau PHPASS (pilihan lama).
Amalan Terbaik
- Elakkan menyekat aksara kata laluan atau panjang.
- Kuatkuasakan panjang kata laluan minimum yang munasabah (mis., 10 aksara).
- Memerlukan gabungan huruf besar dan kecil, nombor dan simbol untuk meningkatkan entropi kata laluan.
- Tetapkan semula kata laluan selepas pencerobohan pangkalan data.
Pertimbangan Tambahan
- Menyimpan berbilang kata laluan cincang (cth., menggunakan algoritma yang berbeza) tidak disyorkan kerana ia menambahkan kerumitan tanpa faedah keselamatan yang ketara.
- Elakkan menggunakan hash() dengan bcrypt, kerana ia memerlukan pengekodan hex atau base64 untuk menghalang pengenalan aksara penyangak yang melemahkan keselamatan .
Atas ialah kandungan terperinci Bagaimana untuk Mencincang Kata Laluan dengan Selamat dalam PHP Semasa Mengimbangi Kelajuan dan Keselamatan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!