Back to blog
Security

Kenapa Password Tidak Boleh Disimpan Mentah? Mengenal Hashing dan Bcrypt

Menyimpan password asli user di dalam database adalah kejahatan IT. Jika servermu dibobol, hidup ratusan usermu bisa hancur.

super admin·16 Juni 2026·2 min read
Kenapa Password Tidak Boleh Disimpan Mentah? Mengenal Hashing dan Bcrypt
Article Content

Dosa Besar Para Backend Developer

Banyak developer pemula membuat fitur register (Daftar Akun), menerima password dari user (misal: budiKeren123), lalu menyimpannya langsung ke database secara bulat-bulat. Praktik menyimpan teks asli ini disebut menyimpan dalam bentuk Plain Text.

Mengapa ini berbahaya? Sekuat apapun sistemmu, tidak ada server yang 100% aman (bahkan Facebook dan Tokopedia pernah bocor). Jika hacker berhasil membobol databasemu, mereka akan melihat daftar email dan password ribuan orang dengan mata telanjang. Karena mayoritas orang menggunakan password yang sama untuk semua akun, hacker akan menggunakan password tersebut untuk membobol email pribadi dan M-Banking korban.

Solusinya: Hashing (Menghancurkan Sandi)

Di dunia Backend, kita tidak pernah menyimpan password asli. Kita menyimpan Hash dari password tersebut.

Hashing adalah fungsi matematika kriptografi yang mengacak teks satu arah. Tidak seperti Enkripsi (yang bisa dibuka kuncinya/didekripsi), fungsi Hashing TIDAK BISA dibalikkan bentuk asalnya.

Jika Budi mendaftar dengan password budi123, fungsi Hash (misal: algoritma SHA-256) akan mengubahnya menjadi:
7a3b4f9d2...8c1e

Teks acak inilah yang disimpan di database. Bahkan kamu sebagai pemilik server pun tidak tahu bahwa password aslinya adalah "budi123"!

Lalu Bagaimana Cara User Login?

Saat besok Budi ingin Login dan mengetik budi123, server Backend akan meng-Hash lagi teks yang baru diketik Budi tersebut. Kemudian, server membandingkan: "Apakah Hash baru ini sama bentuknya dengan Hash yang tersimpan di database?" Jika kembar persis, berarti password-nya benar, dan Budi diizinkan masuk.

Bcrypt dan Fitur 'Salt' (Garam)

Hacker semakin pintar. Mereka sudah punya kamus raksasa (Rainbow Tables) yang berisi daftar Hash dari jutaan password yang umum dipakai (seperti 'password123').

Untuk mengatasinya, developer menggunakan pustaka (library) bernama Bcrypt. Bcrypt sangat aman karena selain meng-Hash, ia juga menaburkan Salt (Garam). Salt adalah teks acak (misal: xQp9) yang ditambahkan ke akhir password user sebelum di-Hash. (Jadi budi123xQp9). Ini membuat kamus *hacker* sama sekali tidak berguna!

Kesimpulan

Aturan emas Backend Developer: Kapanpun kamu berurusan dengan tabel *Users*, pastikan kolom Password sudah dilewatkan ke fungsi Bcrypt sebelum di-INSERT ke dalam Database.

Mau langsung pakai template?

Jelajahi template gratis dan premium di TampilKit untuk mempercepat proses development project kamu.

Browse Templates