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

Login PHP menggunakan data MySQL dan kata sandi hash

Daripada menggunakan MD5 atau mencoba mendekripsi kata sandi - seperti yang disarankan orang lain di sini - cukup gunakan password_hash() fungsi yang secara otomatis memeriksa apakah kata sandi benar untuk Anda.

Enkripsi kata sandi seperti ini:

$unencrypted_password = 'secret!'; 
$encrypted_password = password_hash($unencrypted_password,  PASSWORD_DEFAULT);

Kemudian masukkan ke DB Anda seperti ini:

INSERT INTO users (encrypted_password, username) VALUES ($encrypted_password, $username);

Saat Anda ingin memeriksa apakah kata sandi sudah benar, pilih kata sandi dari database dengan:

SELECT encrypted_password FROM users WHERE username = $username;

Terakhir, periksa apakah sandi sudah benar dengan menggunakan passoword_verify() :

$correct = password_verify($unecnrypted_password, $encrypted_password);
if($correct == true) {
    echo 'correct password!';
} else {
    echo 'password incorrect!';
}

Berhati-hatilah untuk melindungi dari injeksi SQL, karena kode di atas rentan terhadapnya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. bagaimana menerapkan batasan keunikan bersyarat

  2. Mengapa SQLAlchemy count() jauh lebih lambat daripada kueri mentah?

  3. com.mysql.jdbc.PacketTooBigException

  4. Apa yang setara dengan php dari @row:[email protected]+1

  5. Nomor parameter tidak valid:jumlah variabel terikat tidak cocok dengan jumlah token dalam Doktrin