Menyimpan password pengguna dengan cara yang benar adalah salah satu aspek keamanan paling kritis dalam pengembangan web. Banyak developer pemula menyimpan password dalam bentuk teks biasa atau menggunakan fungsi hash lama seperti MD5 dan SHA1 yang sudah tidak aman. PHP menyediakan fungsi bawaan password_hash() dan password_verify() yang dirancang khusus untuk keperluan ini dan sangat mudah digunakan.
Mengapa MD5 dan SHA1 Tidak Aman untuk Password?
MD5 dan SHA1 adalah fungsi hash kriptografi umum yang dirancang untuk kecepatan. Untuk password, ini justru berbahaya karena:
- Terlalu cepat — attacker bisa mencoba miliaran kombinasi per detik (brute force).
- Deterministic tanpa salt — hash yang sama untuk password yang sama, rentan terhadap rainbow table attack.
- Sudah dianggap lemah secara kriptografi.
Fungsi password_hash() menggunakan algoritma seperti Bcrypt secara default yang sengaja dirancang lambat dan secara otomatis menambahkan salt unik.
Menggunakan password_hash()
Penggunaan password_hash() sangat sederhana:
<?php
$password_asli = "RahasiaKu123!";
// Membuat hash password dengan algoritma bcrypt (default)
$hash = password_hash($password_asli, PASSWORD_DEFAULT);
echo $hash;
// Contoh output: $2y$10$abcdefghijklmnopqrstu.hashedpasswordstring
// Hash baru setiap kali dipanggil meski password sama!
Beberapa hal penting tentang password_hash():
-
PASSWORD_DEFAULT— menggunakan algoritma terbaik yang tersedia di versi PHP saat ini (bcrypt di PHP 8). - Hash yang dihasilkan selalu berbeda meskipun passwordnya sama, karena salt di-generate acak setiap kali.
- Simpan hasil hash di kolom database dengan tipe
VARCHAR(255)untuk mengakomodasi perubahan panjang di masa depan.
Artikel ini ditampilkan sebagian. Untuk pembahasan selengkapnya, beserta contoh dan langkah detailnya, Anda dapat membacanya pada sumber aslinya:
Cara Mengamankan Password dengan password_hash di PHP
Tutorial pemrograman dan tools developer lainnya juga tersedia di dhiecoderweb.com.
Top comments (0)