Membuat password_hash
Setiap aplikasi yang dilengkapi fitur login tentu tidak luput dari form password maka dalam hal ini ada contoh skrip PHP yang menggambarkan cara membuat hash password saat registrasi dan kemudian menyimpannya ke dalam database menggunakan fungsi password_hash seperti dibawah ini :
<?php session_start(); // Koneksi ke database $host = "localhost"; $username = "username"; $password = "password"; $database = "nama_database"; $conn = new mysqli($host, $username, $password, $database); // Periksa koneksi if ($conn->connect_error) { die("Koneksi ke database gagal: " . $conn->connect_error); } // Data dari formulir pendaftaran $username = $_POST['username']; $password = $_POST['password']; // Membuat hash password $hashed_password = password_hash($password, PASSWORD_BCRYPT); // Menyimpan data ke database $sql = "INSERT INTO users (username, password) VALUES (?, ?)"; $stmt = $conn->prepare($sql); $stmt->bind_param("ss", $username, $hashed_password); if ($stmt->execute()) { echo "Pendaftaran berhasil."; } else { echo "Terjadi kesalahan saat pendaftaran: " . $stmt->error; } $stmt->close(); $conn->close(); ?>
Info Makanan Herbal
Raja Sambal Informasi Kandungan pada Sayur & BuahTanpa bahan pengawet & Tahan Lama
Pastikan Kita telah membuat tabel "users" dengan kolom "username" dan "password" di dalam database yang dikerjakan oleh kita, sebelum menjalankan skrip di atas. Skrip di atas akan mengambil data yang dikirim melalui formulir pendaftaran, membuat hash dari kata sandi menggunakan password_hash, dan kemudian menyimpannya ke dalam database.
Adapun untuk menampilkan Password_hash
yang dibuat dapat dilihat pada skrip dibawah ini :
echo password_hash("Isi Password kita yang akan di ubah ke Hash/BCRYPT", PASSWORD_BCRYPT);Silahkan buat di text editor kemudian save dan jalankan dengan membuka borwser yang ada. maka akan menampilkan hasil password asli yang sudah di ubah.
Apa yang dimaksud bind_param ? bind_param adalah metode yang digunakan untuk mengikat parameter ke dalam pernyataan SQL yang dipersiapkan (prepared statement). Ini berguna untuk menghindari serangan SQL Injection dan memungkinkan kita untuk dengan aman memasukkan data pengguna ke dalam pernyataan SQL.
Dalam contoh sebelumnya, $stmt->bind_param("ss", $username, $hashed_password) digunakan untuk mengikat dua parameter ke dalam pernyataan SQL:
"ss" adalah string yang menggambarkan tipe data dari setiap parameter. Dalam kasus ini, "ss" berarti kedua parameter adalah string. Anda dapat menggunakan tipe data yang berbeda, seperti "i" untuk integer atau "d" untuk double, tergantung pada jenis data yang Anda ikat.$username adalah variabel yang akan diikat ke parameter pertama dalam pernyataan SQL. Ini adalah nama pengguna yang diterima dari formulir pendaftaran.
$hashed_password adalah variabel yang akan diikat ke parameter kedua dalam pernyataan SQL. Ini adalah kata sandi yang telah di-hash.
Penggunaan bind_param memungkinkan Anda untuk menggantikan nilai parameter dengan nilai yang sebenarnya, dan dalam proses ini, setiap nilai akan diamanatkan dan diberi perlindungan terhadap serangan SQL Injection. Ini adalah praktik terbaik yang dianjurkan ketika Anda memasukkan data dari pengguna ke dalam pernyataan SQL