Password Hashing
Password Hashing (Penyimpanan Kredensial Aman)
Proses mengubah kata sandi teks biasa menjadi nilai hash panjang tetap yang tidak dapat dibalik untuk penyimpanan, memastikan bahwa meskipun database diretas, kata sandi asli tidak dapat dengan mudah dipulihkan.
Detail Teknis
Algoritma password hashing harus sengaja lambat untuk menahan serangan brute-force: bcrypt (1999, work factor yang dapat disesuaikan, output 184-bit), scrypt (2009, memory-hard, tahan serangan GPU), dan Argon2 (2015, pemenang Password Hashing Competition, time/memory/parallelism yang dapat dikonfigurasi). Setiap kata sandi dikombinasikan dengan salt acak unik sebelum hashing untuk mencegah serangan rainbow table. Pepper (rahasia sisi server) menambahkan perlindungan tambahan. Hash kriptografis mentah (SHA-256) tidak cocok karena dirancang untuk cepat, memungkinkan miliaran tebakan per detik pada GPU. OWASP merekomendasikan Argon2id sebagai pilihan utama.
Contoh
```
Password hashing comparison:
bcrypt: $2b$12$salt22chars..hash31chars..
Cost factor 12 → ~250ms per hash
argon2id: $argon2id$v=19$m=65536,t=3,p=4$salt$hash
Memory: 64MB, Iterations: 3, Parallelism: 4
Never use: MD5, SHA-256 alone (too fast → brute-forceable)
```