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

Bagaimana cara menggunakan hashing kata sandi dengan PDO untuk membuat kode saya lebih aman?

Gunakan saja perpustakaan. Dengan serius. Mereka ada karena suatu alasan.

Jangan lakukan sendiri. Jika Anda membuat garam sendiri, ANDA LAKUKANNYA SALAH . Anda harus menggunakan perpustakaan yang menanganinya untuk Anda.

$dbh = new PDO(...);

$username = $_POST["username"];
$email = $_POST["email"];
$password = $_POST["password"];
$hash = password_hash($password, PASSWORD_DEFAULT);

$stmt = $dbh->prepare("insert into users set username=?, email=?, password=?");
$stmt->execute([$username, $email, $hash]);

Dan saat masuk:

$sql = "SELECT * FROM users WHERE username = ?";
$stmt = $dbh->prepare($sql);
$result = $stmt->execute([$_POST['username']]);
$users = $result->fetchAll();
if (isset($users[0]) {
    if (password_verify($_POST['password'], $users[0]->password) {
        // valid login
    } else {
        // invalid password
    }
} else {
    // invalid username
}


  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 cara menginstal MySQL di CentOS 7

  2. Bagaimana cara mengubah baris tabel mysql menjadi kolom

  3. Kondisi WHERE di MySQL dengan 16 Contoh Query Berbeda

  4. Bagaimana saya bisa terhubung ke MySQL dengan Python 3 di Windows?

  5. Bagaimana Cara Membangun Kembali Budak MySQL yang Tidak Konsisten?