Catatan Developer: Jangan Samakan "Hash" dengan "Enkripsi"
Banyak programmer pemula sering bilang: "Password-nya udah saya enkripsi pakai MD5 kok." — padahal secara konsep kriptografi itu salah kaprah!
Bedanya mendasar banget:
- Enkripsi (Dua Arah): Teks diubah jadi kode rahasia dan bisa dikembalikan lagi ke teks aslinya kalau kamu punya kunci deskripsinya (misal: AES-256, RSA).
- Hash (Satu Arah): Teks diproses lewat rumus matematika satu arah menjadi sidik jari digital (*digest*) dengan panjang tetap. Secara teori dan matematika, kamu tidak bisa merekonstruksi teks asli dari kode hash-nya.
Sangat tidak disarankan! Meskipun SHA-256 aman dari tabrakan hash (*collision*), algoritma ini dirancang sangat cepat. GPU modern bisa menghitung miliaran hash SHA-256 per detik untuk membobol password dengan *brute-force* atau *rainbow table*. Untuk password user di database, selalu gunakan fungsi hashing lambat yang memiliki salt otomatis seperti Bcrypt, Argon2id, atau PBKDF2.
Kapan MD5 & SHA-1 Masih Layak Dipakai?
Meskipun sudah tidak boleh dipakai untuk keamanan password atau sertifikat SSL, MD5 dan SHA-1 tetap punya kegunaan praktis:
- Cek Integritas File Download (Checksum): Memastikan file ISO Linux atau installer software yang kamu download tidak korup di tengah jalan.
- Cache Key di Server: Membuat kunci ringkas untuk Redis atau Memcached dari query SQL yang panjang.
- Git Version Control: Git secara historis memakai SHA-1 untuk melacak hash tiap commit perubahan kode.