Banyak praktisi software — bahkan yang berpengalaman — pernah mencampuradukkan istilah encoding, hashing, dan encryption. Padahal ketiganya berbeda tujuan, sifat, dan implikasinya. Artikel ini menjelaskan perbedaan inti, bagaimana masing-masing bekerja, contoh nyata, serta praktik aman yang perlu Anda tahu jika bekerja di bidang pengembangan perangkat lunak atau keamanan.
Di bawah ini kita uraikan lebih rinci disertai contoh praktis.
Pengertian: transformasi data dari satu bentuk ke bentuk lain yang disetujui/diizinkan sistem penerima, dan dapat dibalik tanpa informasi tambahan.
Contoh / aplikasi nyata:
%20, ? → %3F) agar URL hanya berisi karakter valid.#FF0000) atau data biner dalam format yang ringkas.%20 bisa mendecode menjadi spasi.Contoh kode (Python):
import base64
text = "hello"
encoded = base64.b64encode(text.encode()).decode()
# encoded -> "aGVsbG8="
Pengertian: proses matematis yang mengubah input (ukuran beragam) menjadi fixed-length string (hash). Hash tidak bisa di-reverse ke input asli.
Sifat utama hashing:
Kegunaan praktis:
Catatan keamanan praktis:
Untuk password, selalu gunakan salt (random per-user) + algoritma hashing yang khusus untuk password (bcrypt, Argon2, scrypt) agar tahan terhadap serangan brute-force dan rainbow table.
Contoh kode hashing (Python, SHA-256):
import hashlib
pw = "rahasia123"
h = hashlib.sha256(pw.encode()).hexdigest()
# h -> string hex panjang tetap
Pengertian: proses mengubah data menjadi bentuk tak terbaca (ciphertext) yang hanya dapat dikembalikan ke bentuk aslinya (plaintext) jika seseorang memiliki kunci yang benar. Encryption adalah two-way transform (bisa dienkripsi dan didekripsi).
Jenis utama:
Contoh historis sederhana: Caesar cipher (shift setiap huruf sebanyak N) — illustrate konsep kunci (N). Mudah dipecahkan sekarang, tapi menjelaskan ide kunci enkripsi.
Aplikasi nyata modern:
Sifat penting: reversible hanya jika Anda punya kunci yang benar; tujuan utama: confidentiality.
| Aspek | Encoding | Hashing | Encryption |
|---|---|---|---|
| Reversible? | Ya | Tidak | Ya (dengan kunci) |
| Tujuan utama | Representasi / transmisi | Verifikasi / identitas | Kerahasiaan |
| Contoh | URL-encode, Base64, hex | SHA-256, bcrypt | AES, RSA |
| Cocok untuk menyimpan password? | Tidak | Ya (dengan salt & algoritma khusus) | Tidak ideal sebagai satu-satunya metode |
| Digunakan untuk integritas file? | Tidak spesifik | Ya | Bisa (bersamaan dg MAC) |
Hello World? → URL encode → Hello%20World%3F.hello → aGVsbG8=.hash = bcrypt(password + salt) → simpan salt + hash.ciphertext = AES_encrypt(plaintext, key) → simpan/gunakan key dengan aman.Memahami perbedaan ini bukan hanya soal istilah — ini soal memilih alat yang tepat demi keamanan, keandalan, dan kinerja sistem Anda. Salah pilih (mis. menggunakan encoding sebagai pengaman) bisa berakibat kebocoran data dan kerentanan serius.
Ilmu komputer teoretis (theoretical computer science) memiliki hubungan erat dengan matematika karena pemrograman menggunakan algoritma,…
https://www.youtube.com/watch?v=SuaxadRqJpM Pengantar Suara manusia adalah instrumen yang kita semua mainkan — sekaligus alat paling kuat…
https://www.youtube.com/watch?v=Ew59SKy181Y Analisis Heni Ozi Cukier mengungkap empat dimensi — sosial, ekonomi, politik, dan militer —…
https://www.youtube.com/watch?v=ZAqIoDhornk Ringkasan padat dari konsep-konsep utama fisika—dari Newton hingga mekanika kuantum—dengan contoh sehari-hari dan makna…
https://www.youtube.com/watch?v=olQh39MoJsQ Cara Cepat Mengenal Huruf Sirilik dan Logika Bahasa Rusia untuk Pemula Pendahuluan: Bahasa Asing…
https://www.youtube.com/watch?v=UJGsfLa8dmE 1. Korelasi antara Iman, Ilmu, dan Takwa UAH menjelaskan bahwa iman dan ilmu merupakan…