Beranda / Panduan / Dasar-dasar fungsi hash — sifat satu arah, tabrakan, salt

Fungsi hash adalah fungsi yang mengubah data berpanjang sembarang menjadi nilai berpanjang tetap (hash atau digest). Input yang sama selalu menghasilkan hash yang sama, tetapi jika input berbeda hanya 1 bit sekalipun, hash yang dihasilkan akan sepenuhnya berbeda.

Sifat inti dari hash kriptografis yang baik adalah sifat satu arah. Membalikkan input asli hanya dari nilai hash praktis mustahil dilakukan. Karena itu, jika kata sandi disimpan sebagai hash alih-alih teks biasa, walau data bocor, teks aslinya tidak dapat langsung diketahui.

Tabrakan adalah kondisi ketika dua input berbeda memiliki hash yang sama. Secara teori tabrakan itu ada, tetapi pada hash yang aman, membuatnya secara sengaja harus mustahil secara komputasi. Alasan MD5 dan SHA-1 diusangkan justru karena tabrakannya menjadi dapat dibuat.

Untuk penyimpanan kata sandi, hash saja tidak cukup. Karena kata sandi yang sama menghasilkan hash yang sama, tambahkan nilai acak untuk setiap input berupa salt sebelum di-hash, dan gunakan hash lambat seperti bcrypt dan Argon2 untuk memperlambat serangan tebak-massal.

Hash dengan algoritma ini