Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Enkripsi kata sandi sebelum disimpan di database?

Meskipun jawaban di bawah ini secara teknis masih benar, php memiliki rekomendasi baru sehubungan dengan algoritma hashing yang akan digunakan. Rekomendasi mereka , pada php> =5.5.0, adalah menggunakan password_hash dan password_verify fungsi untuk hash dan verifikasi password hash. Sebagai manfaat tambahan, fungsi-fungsi ini secara otomatis menyertakan garam individual sebagai bagian dari hash yang dikembalikan, jadi Anda tidak perlu mengkhawatirkannya secara eksplisit.

Jika Anda tidak peduli tentang mengambil nilai sandi yang sebenarnya (dari nilai terenkripsi database), Anda dapat menjalankan algoritma hash satu arah di atasnya (seperti sha1). Fungsi ini akan mengembalikan string panjang tertentu (hash) yang tidak dapat digunakan untuk menemukan string asli (secara teoritis). Ada kemungkinan bahwa dua string yang berbeda dapat membuat hash yang sama (disebut tabrakan), tetapi ini seharusnya tidak menjadi masalah dengan sandi.
Contoh: $pass = sha1($_REQUEST['pass']);

Satu hal, untuk membuatnya sedikit lebih aman adalah menambahkan garam ke hash dan menjalankan fungsi hash lagi. Hal ini mempersulit pembuatan hash sandi secara berbahaya karena nilai garam hanya ditangani di sisi server.
Contoh: $pass = sha1(sha1($_REQUEST['pass']).sha1("[email protected]$#(%"));



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MY SQL - Kode Kesalahan:1010. Kesalahan menjatuhkan basis data (tidak dapat rmdir; errno:13)

  2. Menggunakan local.js untuk menyimpan kata sandi sails-mysql

  3. Hibernate:Buat tabel Mysql InnoDB alih-alih MyISAM

  4. Django- Bagaimana memetakan pesan yang dikirim antar pengguna

  5. Bagaimana cara membuat pekerjaan Cron untuk mencadangkan cadangan MySQL dan FTP ke server cadangan saya?