Pengertian Fungsi Hash dan Penerapannya
Dalam komputasi, fungsi hash adalah fungsi matematika yang memetakan data masukan dengan panjang variabel ke keluaran dengan panjang tetap, yang dikenal sebagai nilai hash atau intisari. Keluaran fungsi hash bersifat unik terhadap data masukan dan setiap perubahan kecil pada data masukan akan menghasilkan keluaran yang sangat berbeda.
Fungsi hash digunakan dalam banyak aplikasi, seperti:
1. Integritas data: Fungsi hash dapat digunakan untuk membuat sidik jari digital dari suatu file atau pesan, yang dapat dikirim bersama data untuk memverifikasi integritasnya nanti. Jika data diubah, nilai hash juga akan berubah, menunjukkan bahwa data telah dirusak.
2. Penyimpanan kata sandi: Fungsi hash sering digunakan untuk menyimpan kata sandi dengan aman. Kata sandi di-hash dan nilai hash yang dihasilkan disimpan dalam database. Saat pengguna masuk, kata sandi mereka di-hash lagi dan dibandingkan dengan nilai hash yang disimpan, sehingga memungkinkan otentikasi aman tanpa benar-benar menyimpan kata sandi itu sendiri.
3. Pengindeksan data: Tabel hash menggunakan fungsi hash untuk mengindeks data dengan cepat dan efisien.
4. Kriptografi: Fungsi hash digunakan dalam berbagai aplikasi kriptografi seperti tanda tangan digital dan kode otentikasi pesan (MAC).
Beberapa properti fungsi hash meliputi:
1. Determinisme: Output dari fungsi hash selalu sama untuk data input yang sama.
2. Non-invertibilitas: Secara komputasi tidak mungkin untuk menentukan data masukan asli hanya dari nilai hash.
3. Ukuran keluaran tetap: Keluaran fungsi hash selalu berukuran tetap, berapa pun panjang data masukannya.
4. Resistensi tumbukan: Tabrakan terjadi ketika dua masukan berbeda menghasilkan keluaran yang sama. Fungsi hash yang baik dirancang untuk meminimalkan kemungkinan tabrakan.
Beberapa jenis fungsi hash yang umum meliputi:
1. SHA (Algoritma Hash Aman): Keluarga fungsi hash kriptografi yang menghasilkan keluaran berukuran tetap.
2. MD5 (Message-Digest Algorithm 5): Fungsi hash kriptografi yang menghasilkan output berukuran tetap, namun telah terbukti rentan terhadap tabrakan.
3. CRC (Cyclic Redundancy Check): Fungsi hash yang digunakan untuk mendeteksi dan mengoreksi kesalahan dalam sistem komunikasi digital.
4. matang: Keluarga fungsi hash kriptografi yang mirip dengan SHA tetapi memiliki properti berbeda.
Singkatnya, fungsi hash adalah fungsi matematika yang mengambil data masukan dengan panjang variabel dan menghasilkan keluaran dengan panjang tetap, yang dapat digunakan untuk berbagai aplikasi seperti integritas data, penyimpanan kata sandi, pengindeksan data, dan kriptografi. Fungsi hash yang baik memiliki sifat seperti determinisme, non-invertibilitas, ukuran keluaran tetap, dan ketahanan terhadap benturan.