Mengabaikan masalah dengan pernyataan database Anda untuk saat ini, saya akan menjawab pertanyaan tentang password_hash
.
Singkatnya, tidak, bukan begitu cara Anda melakukannya. Anda tidak ingin menyimpan garam sendirian, Anda harus menyimpan hash dan garam, lalu menggunakan keduanya untuk memverifikasi kata sandi. password_hash
mengembalikan string yang berisi keduanya.
password_hash
fungsi mengembalikan string yang berisi hash dan garam. Jadi:
$hashAndSalt = password_hash($password, PASSWORD_BCRYPT);
// Insert $hashAndSalt into database against user
Kemudian untuk memverifikasi:
// Fetch hash+salt from database, place in $hashAndSalt variable
// and then to verify $password:
if (password_verify($password, $hashAndSalt)) {
// Verified
}
Selain itu, seperti yang disarankan oleh komentar, jika Anda tertarik dengan keamanan, Anda mungkin ingin melihat mysqli
(ext/mysql
tidak digunakan lagi di PHP5.5), dan juga artikel tentang injeksi SQL ini:http://php.net/manual/en/security.database.sql-injection.php