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

Pembuatan garam dan enkripsi kata sandi Crypt(), dijalankan dengan baik?

Ada beberapa poin yang dapat ditingkatkan, tetapi pertama-tama saya akan merekomendasikan untuk menggunakan fungsi baru PHP password_hash() . Fungsi ini akan menghasilkan garam aman dan memasukkannya ke dalam nilai hash yang dihasilkan, sehingga Anda dapat menyimpannya dalam satu bidang basis data. Ada juga paket kompatibilitas untuk versi sebelumnya.

// Hash a new password for storing in the database.
// The function automatically generates a cryptographically safe salt.
$hashToStoreInDb = password_hash($password, PASSWORD_BCRYPT);

// Check if the hash of the entered login password, matches the stored hash.
// The salt and the cost factor will be extracted from $existingHashFromDb.
$isPasswordCorrect = password_verify($password, $existingHashFromDb);

Beberapa pemikiran tentang kode Anda:

  1. Anda membuat hash BCrypt dengan crypt(), sehingga garam akan menjadi bagian dari hash yang dihasilkan. Tidak perlu menyimpannya secara terpisah.
  2. Pembuatan garam dapat ditingkatkan, gunakan sumber acak dari sistem operasi MCRYPT_DEV_URANDOM.
  3. Jika Anda akan mengubah faktor biaya menjadi 9, formatnya akan menjadi tidak valid, karena crypt mengharapkan dua digit.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ap_pass_brigade gagal dalam fungsi handle_request_ipc

  2. Kode PHP untuk memasukkan nilai kotak centang ke kolom tertentu di mysql dengan formulir pilih

  3. Bagaimana cara mengulang fungsi tersimpan di MySQL dengan benar?

  4. Cara Mysql JDBC Driver ke android studio

  5. Hasil database sebagai objek atau array?