Hash adalah rumus matematika yang mengambil string data dengan panjang variabel, biasanya dalam bentuk teks, dan mengubahnya menjadi nilai numerik yang lebih pendek dan panjang tetap. Hash sering digunakan dalam database komputer untuk membuat pencarian lebih cepat dan lebih efisien. Mereka juga digunakan dalam enkripsi untuk memastikan bahwa kata sandi tidak dikompromikan dan untuk mengotentikasi tanda tangan digital, di antara kegunaan lainnya. Hash juga menggunakan nama fungsi hash, dan juga dapat dianggap sebagai algoritma.
Hash memainkan peran besar dalam memfasilitasi pencarian basis data. Dalam database yang terdiri dari nama, misalnya, jika pengguna mencari “John Doe”, komputer harus mencocokkan semua karakter dalam pencarian dengan setiap entri database. Setiap karakter dalam nama akan memiliki 26 kemungkinan berbeda — huruf-huruf alfabet Inggris — sementara panjang variabel entri juga akan memperlambat pencarian.
Sebaliknya, menerapkan fungsi hash akan membuat kehidupan komputer lebih mudah. Mengubah setiap string teks menjadi serangkaian angka akan menyederhanakan pencarian, karena komputer hanya memiliki sepuluh kemungkinan untuk memeriksa setiap karakter: angka “0” hingga “9.” Panjang seri angka yang tetap juga membantu komputer melakukan tugasnya dengan lebih efisien.
Dalam database dengan fungsi hash yang diterapkan, semua entri memiliki nomor unik yang sesuai. Ini disebut kunci hash. Dalam hal ini, saat Anda melakukan pencarian, komputer pertama-tama menerapkan fungsi hash ke input yang Anda tulis, seperti “John Doe.” Ini menghasilkan nilai numerik, misalnya “456789.” Komputer kemudian dapat dengan cepat mencocokkan hasil ini dengan kunci hash yang sesuai dengan entri yang benar.
Hash juga berfungsi sebagai tanda tangan digital. Misalnya, pengirim, Robert, ingin mengirim dokumen ke seseorang dan penerima, Mary, ingin memastikan dokumen tidak dirusak saat dalam perjalanan. Pengirim, Robert, hanya perlu menjalankan dokumen melalui fungsi hash, yang menghasilkan nilai numerik. Robert kemudian mengenkripsi kunci hash dan mengirimkan dokumen bersama dengan kunci terenkripsi.
Mary menerima kedua item dan mendekripsi kunci hash. Dia sekarang dapat melihat nilai numerik yang dihasilkan dari dokumen sebelum dikirim. Untuk memverifikasi bahwa dokumen di tangannya sama persis, dia menjalankan dokumen melalui fungsi hash di komputernya. Terakhir, dia membandingkan kedua kunci. Jika sama, maka dokumen tersebut tidak diubah dalam perjalanannya ke penerima.
Ada banyak fungsi hash yang berbeda, masing-masing dengan rumus matematikanya sendiri. Agar fungsi hash berfungsi, ia harus meminimalkan tabrakan apa pun, yang terjadi ketika dua entri database memiliki kunci hash yang sama. Fungsi hash juga harus satu arah. Itu berarti Anda dapat menghasilkan kunci dari entri database atau dokumen, tetapi tidak sebaliknya. Dengan kata lain, Anda tidak dapat “merekayasa balik” dokumen asli dari kunci hashnya.