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

Pengasinan hash saya dengan PHP dan MySQL

Pertama-tama, DBMS (MySQL) Anda tidak perlu memiliki dukungan untuk hash kriptografi. Anda dapat melakukan semua itu di sisi PHP, dan itu juga yang harus Anda lakukan.

Jika Anda ingin menyimpan garam dan hash di kolom yang sama, Anda harus menggabungkannya.

// the plaintext password
$password = (string) $_GET['password'];

// you'll want better RNG in reality
// make sure number is 4 chars long
$salt = str_pad((string) rand(1, 1000), 4, '0', STR_PAD_LEFT);

// you may want to use more measures here too
// concatenate hash with salt
$user_password = sha512($password . $salt) . $salt;

Sekarang, jika Anda ingin memverifikasi sandi, lakukan:

// the plaintext password
$password = (string) $_GET['password'];

// the hash from the db
$user_password = $row['user_password'];

// extract the salt
// just cut off the last 4 chars
$salt = substr($user_password, -4);
$hash = substr($user_password, 0, -4);

// verify
if (sha512($password . $salt) == $hash) {
  echo 'match';
}

Anda mungkin ingin melihat phpass , yang juga menggunakan teknik ini. Ini adalah solusi hashing PHP yang menggunakan salting di antara beberapa hal lainnya.

Anda pasti harus melihat jawaban atas pertanyaan yang ditautkan oleh WolfOdrade.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP Peringatan:PHP Startup:Tidak dapat memuat perpustakaan dinamis '/usr/lib/php/20151012/msqli.so'

  2. Memilih semua catatan dari satu tahun yang lalu sampai sekarang

  3. BLOB vs. VARCHAR untuk menyimpan array dalam tabel MySQL

  4. Bagaimana cara mengganti nama file yang diunggah sebelum menyimpannya ke dalam direktori?

  5. Tutorial MySQL – Mengelola Log Server MySQL:Putar, Kompres, Pertahankan &Hapus