Belajar PHP

7 Cara Aman Hashing Password dengan password_hash() di PHP

7 Cara Aman Hashing Password dengan password_hash() di PHP

Mengamankan password pengguna adalah bagian terpenting dari pengembangan aplikasi web. Dalam PHP, fungsi password_hash() adalah standar modern untuk melakukan hashing secara aman, sederhana, dan sulit diretas.


1. Apa Itu Hashing Password?

Hashing adalah proses mengubah password asli menjadi teks acak yang tidak bisa dikembalikan lagi ke bentuk semula. Berbeda dengan enkripsi, hashing bersifat satu arah sehingga lebih aman untuk penyimpanan password.

2. Kenapa Harus Menggunakan password_hash()?

  • Menggunakan algoritma aman seperti BCRYPT atau Argon2.
  • Memiliki salt otomatis, jadi tidak perlu membuat salt manual.
  • Menyediakan cost factor untuk memperkuat keamanan.
  • Standar modern yang direkomendasikan OWASP.

3. Cara Dasar Hashing dengan password_hash()

<?php
$password = "rahasia123";

// Membuat hash
$hash = password_hash($password, PASSWORD_DEFAULT);

echo $hash;
?>

Output yang dihasilkan adalah string acak yang aman, dan bisa langsung disimpan di database.

4. Verifikasi Password dengan password_verify()

<?php
$input = "rahasia123";

if (password_verify($input, $hash)) {
    echo "Password benar!";
} else {
    echo "Password salah!";
}
?>

Fungsi ini membandingkan password input dengan hash yang tersimpan.

5. Menggunakan Algoritma Argon2 (Lebih Aman)

<?php
$hash = password_hash("rahasia123", PASSWORD_ARGON2ID);
echo $hash;
?>

Argon2 adalah algoritma hashing paling aman saat ini.

6. Menentukan Cost Factor

<?php
$options = [
    "cost" => 12
];

$hash = password_hash("rahasia123", PASSWORD_BCRYPT, $options);
?>

Semakin tinggi cost, semakin aman (tapi lebih berat).

7. Kesalahan Umum dalam Hashing Password

  • Menyimpan password tanpa hashing.
  • Menggunakan MD5 atau SHA1 (sudah tidak aman).
  • Membuat salt manual (tidak diperlukan lagi).

Kesimpulan

password_hash() adalah cara terbaik dan paling aman untuk menyimpan password di PHP. Dengan fitur hashing modern seperti BCRYPT dan Argon2, serta verifikasi yang mudah menggunakan password_verify(), developer bisa membangun sistem login yang kuat dan aman.

Ruang Diskusi

Tinggalkan Komentar

Belum ada komentar. Jadilah yang pertama berkomentar!