Dalam dunia teknologi informasi dan keamanan data, istilah hashing, encoding, dan enkripsi sering digunakan secara bergantian. Padahal, ketiganya memiliki tujuan, cara kerja, dan fungsi yang sangat berbeda.
Kesalahpahaman terhadap konsep ini bisa berujung pada implementasi keamanan yang keliru. Artikel ini akan membahas perbedaan hashing, encoding, dan enkripsi secara sederhana namun tetap akurat.
1. Encoding
Apa itu Encoding?
Encoding adalah proses mengubah data dari satu format ke format lain agar data tersebut dapat dibaca, ditransmisikan, atau disimpan dengan benar oleh sistem yang berbeda.
Encoding tidak bertujuan untuk mengamankan data.
Karakteristik Encoding
- Bersifat reversible (bisa dikembalikan ke bentuk semula)
- Tidak menggunakan kunci (key)
- Fokus pada kompatibilitas dan representasi data
Contoh Encoding
- Base64
- URL Encoding
- ASCII / UTF-8
Contoh penggunaan:
- Mengirim data biner melalui email
- Menyimpan file gambar dalam format teks
- Menghindari karakter ilegal dalam URL
Jika seseorang mengetahui metode encoding-nya, data bisa dikembalikan dengan mudah.
2. Enkripsi
Apa itu Enkripsi?
Enkripsi adalah proses mengubah data menjadi bentuk yang tidak dapat dibaca tanpa kunci rahasia tertentu. Tujuan utamanya adalah menjaga kerahasiaan data.
Karakteristik Enkripsi
- Bersifat reversible
- Membutuhkan key untuk enkripsi dan dekripsi
- Digunakan untuk keamanan dan privasi
Jenis Enkripsi
-
Enkripsi Simetris
-
Satu key untuk enkripsi dan dekripsi
-
Contoh: AES, DES
-
-
Enkripsi Asimetris
-
Sepasang key (public key & private key)
-
Contoh: RSA, ECC
-
Contoh penggunaan
-
HTTPS (SSL/TLS)
-
Enkripsi file dan disk
-
Aplikasi chat end-to-end encryption
Tanpa key yang benar, data hasil enkripsi hampir mustahil dibaca.
3. Hashing
Apa itu Hashing?
Hashing adalah proses mengubah data menjadi nilai hash dengan panjang tetap menggunakan algoritma hash. Berbeda dari encoding dan enkripsi, hashing tidak bisa dikembalikan ke data asli.
Karakteristik Hashing
-
One-way function (tidak reversible)
-
Tidak menggunakan key (kecuali HMAC)
-
Output selalu memiliki panjang tetap
-
Perubahan kecil pada input menghasilkan hash yang sangat berbeda
Contoh Algoritma Hash
-
SHA-256
-
SHA-512
-
bcrypt
-
Argon2
Contoh penggunaan
-
Penyimpanan password
-
Verifikasi integritas file
-
Digital signature
Sistem yang baik tidak pernah menyimpan password asli, melainkan hash-nya.
Perbandingan Singkat
| Aspek | Encoding | Enkripsi | Hashing |
|---|---|---|---|
| Tujuan | Kompatibilitas data | Keamanan data | Verifikasi & integritas |
| Bisa dikembalikan | Ya | Ya (dengan key) | Tidak |
| Menggunakan key | Tidak | Ya | Tidak |
| Keamanan | ❌ | ✅ | ✅ |
| Contoh | Base64 | AES, RSA | SHA-256 |
Kesalahan Umum yang Sering Terjadi
-
Mengira Base64 adalah enkripsi
-
Menyimpan password dengan encoding
-
Menggunakan hashing untuk menyembunyikan data rahasia yang perlu dikembalikan
Memahami tujuan dari masing-masing teknik sangat penting agar tidak salah kaprah dalam implementasi.
Secara singkat:
-
Encoding → agar data bisa dibaca sistem lain
-
Enkripsi → agar data tetap rahasia
-
Hashing → untuk verifikasi dan keamanan satu arah
Ketiganya sering digunakan bersamaan dalam sistem modern, tetapi tidak bisa saling menggantikan.
Contoh Penggunaan Encoding (Kapan dan Mengapa Dipakai)
Studi Kasus 1: Mengirim Data Lewat URL
Misalnya Anda ingin mengirim data berikut lewat URL:
Masalahnya:
-
Spasi
-
Karakter
&dan=
Solusi: URL Encoding
Hasil encoding:
📌 Kenapa encoding dipakai?
Karena browser dan server butuh format yang aman dan standar agar data tidak rusak saat dikirim.
Studi Kasus 2: Menyimpan File Biner dalam Format Teks
Misalnya:
-
Gambar
-
File PDF
-
File attachment email
Solusi: Base64 Encoding
📌 Kenapa encoding dipakai?
-
Sistem email, JSON, dan XML berbasis teks
-
Encoding membuat data biner bisa “menyamar” sebagai teks
⚠️ Catatan penting
Base64 bukan keamanan. Siapa pun bisa decode kembali tanpa password.
Kapan Encoding TIDAK Tepat?
❌ Menyimpan password
❌ Menyembunyikan API key
❌ Mengamankan data sensitif
Encoding hanya soal format, bukan perlindungan.
Contoh Penggunaan Enkripsi (Kapan dan Mengapa Dipakai)
Studi Kasus 1: Login Website (HTTPS)
Saat Anda login ke website:
Tanpa enkripsi:
-
Bisa disadap (sniffing)
-
Password terlihat jelas
Dengan HTTPS (TLS Encryption):
-
Data dienkripsi sebelum dikirim
-
Hanya server yang bisa membaca
📌 Kenapa enkripsi dipakai?
Karena data harus bisa dibuka kembali, tapi hanya oleh pihak yang berwenang.
Studi Kasus 2: Menyimpan Data Rahasia di Database
Contoh data:
-
Nomor KTP
-
Nomor kartu kredit
-
API secret key
Solusi:
-
Enkripsi data sebelum disimpan
-
Dekripsi saat dibutuhkan
📌 Kenapa tidak hashing?
Karena data ini perlu ditampilkan kembali, bukan sekadar diverifikasi.
Studi Kasus 3: Backup File Pribadi
Anda membuat file ZIP berisi:
-
Dokumen kerja
-
Scan identitas
Solusi:
-
ZIP dengan password (AES Encryption)
-
Full disk encryption (BitLocker, LUKS)
📌 Tujuan enkripsi
Jika file bocor atau dicuri, isinya tetap tidak bisa dibaca.
Kapan Enkripsi TIDAK Tepat?
❌ Menyimpan password login
❌ Verifikasi integritas file
❌ Mendeteksi perubahan data
Contoh Penggunaan Hashing (Kapan dan Mengapa Dipakai)
Studi Kasus 1: Penyimpanan Password
Saat user mendaftar:
Yang disimpan di database:
Saat login:
-
Password di-hash ulang
-
Dibandingkan dengan hash di database
📌 Kenapa hashing dipakai?
-
Password tidak perlu diketahui kembali
-
Jika database bocor, password asli tetap aman
Inilah alasan sistem profesional tidak pernah menyimpan password asli.
Studi Kasus 2: Deteksi File Rusak atau Dimodifikasi
Anda download file ISO Linux.
Langkah:
-
Hitung hash file (misalnya SHA-256)
-
Bandingkan dengan hash resmi
Jika beda:
-
File rusak
-
File dimodifikasi
-
Potensi malware
📌 Hashing = sidik jari digital file
Studi Kasus 3: Digital Signature
Pada software atau update sistem:
-
File di-hash
-
Hash ditandatangani secara kriptografi
📌 Peran hashing di sini
-
Menjamin file tidak berubah
-
Menjamin file asli dari sumbernya
Kapan Hashing TIDAK Tepat?
❌ Menyimpan data yang perlu dibaca ulang
❌ Menyembunyikan pesan rahasia
❌ Mengamankan komunikasi dua arah
Ringkasan Praktis: Pakai yang Mana?
Gunakan pertanyaan ini sebagai panduan:
❓ Apakah data perlu dikembalikan ke bentuk asli?
-
✅ Ya → Encoding atau Enkripsi
-
❌ Tidak → Hashing
❓ Apakah data bersifat rahasia?
-
✅ Ya → Enkripsi
-
❌ Tidak → Encoding
❓ Apakah tujuan hanya verifikasi?
-
✅ Ya → Hashing
Contoh Keputusan Nyata
| Kebutuhan | Teknik yang Tepat |
|---|---|
| Password login | Hashing |
| Data login dikirim ke server | Enkripsi |
| Parameter URL | Encoding |
| API key disimpan | Enkripsi |
| Cek file rusak | Hashing |
| Kirim gambar via JSON | Encoding |
Penutup
Kesalahan paling umum di dunia IT bukan karena kurang alat, tapi karena salah memilih alat.
-
Encoding ≠ Security
-
Enkripsi ≠ Penyimpanan password
-
Hashing ≠ Menyembunyikan data
