Biasanya, sebenarnya tidak perlu membalikkan enkripsi kata sandi. Memiliki kemampuan itu secara inheren mengurangi keamanan sistem. Sebagai gantinya, gunakan fungsi hash yang tidak dapat diubah. Saya menyarankan SHA-256 (atau lebih besar) yang menghasilkan hasil string:
SHA2 (CONCAT (user.name, user.password, 'some salt', user.id), 256)
Saya juga telah membuat frustrasi tabel pelangi massal dari penggunaan apa pun dengan menggulirkan data lain yang selalu diketahui pada waktu validasi kata sandi.
SHA2
membutuhkan MySQL 5.5 atau yang lebih baru. Jika Anda menggunakan versi sebelumnya, SHA1()
hampir sama baiknya, dan umumnya jauh lebih baik daripada MD5
, AES
, dll.