Hash adalah string (intisari) dengan panjang tetap yang dihasilkan dari data masukan dengan ukuran apa pun menggunakan fungsi hash. Prosesnya satu arah—Anda tidak dapat mendekripsi atau membalikkan hash untuk mendapatkan data asli. Itulah sebabnya "enkripsi hash" merupakan istilah yang keliru; hashing bukanlah enkripsi.
Algoritma hash yang populer meliputi:
MD5 (sudah tidak berlaku lagi untuk keperluan keamanan)
SHA-1 (sudah tidak digunakan lagi)
SHA-256, SHA-512 (bagian dari keluarga SHA-2)
SHA-3
bcrypt, scrypt, Argon2 (untuk hashing kata sandi yang aman)
Hashing memiliki beberapa tujuan dalam keamanan siber dan integritas data. Alasan utama untuk menggunakan hashing meliputi:
Integritas Data: Memastikan data belum diubah (misalnya, checksum file).
Penyimpanan Kata Sandi: Menyimpan kata sandi dengan aman dengan membandingkan hash alih-alih menyimpan kata sandi yang sebenarnya.
Tanda Tangan Digital: Hash ditandatangani alih-alih dokumen besar.
Efisiensi: Nilai hash yang kecil dan berukuran tetap lebih cepat dibandingkan daripada blok data yang besar.
Karena hash bersifat deterministik dan cepat, hash ideal untuk tugas verifikasi.
Penggunaan fungsi hash meliputi:
Memasukkan data (misalnya, file, string, atau kata sandi).
Memproses data dengan algoritma hashing.
Memperoleh intisari, yang merupakan string berukuran tetap yang secara unik mewakili masukan.
Untuk perlindungan kata sandi:
Gabungkan kata sandi dengan salt (data acak).
Terapkan fungsi hash yang aman (misalnya, bcrypt atau Argon2).
Simpan hash dan salt yang dihasilkan dengan aman.
Karena hash tidak dapat dibalik, Anda memverifikasi input (seperti kata sandi) dengan melakukan hashing lagi dan membandingkan hash baru dengan hash yang tersimpan.
Hashing harus digunakan ketika:
Integritas data perlu diverifikasi (misalnya, memeriksa kerusakan atau gangguan).
Kata sandi perlu disimpan dengan aman (tidak dienkripsi atau teks biasa).
Tanda tangan dan sertifikat digital terlibat (hashing memastikan keaslian dokumen).
Perbandingan data yang cepat diperlukan (misalnya, dalam tabel hash atau cache).
Hashing tidak cocok jika Anda perlu memulihkan data asli nanti—itulah gunanya enkripsi.