Contoh Steganografi: Panduan Lengkap untuk Pemula
Pernah terpikir mengirim pesan rahasia lewat foto liburan yang kelihatan biasa saja? Itulah ide dasar steganografi. Contoh steganografi paling mudah ada di sekitar kita: pesan yang diselipkan di dalam foto, lagu, atau bahkan kalimat biasa.
Di sini kamu akan melihat pengertian steganografi, cara kerjanya lewat metode least significant bit (LSB), contoh pada gambar, audio, dan teks, sampai tools yang bisa kamu coba sendiri. Ada juga kode Python pendek yang sudah saya jalankan sendiri, jadi kamu bisa langsung praktik.
Apa itu steganografi?

Steganografi adalah teknik menyembunyikan informasi di dalam data lain. Orang yang melihat hasilnya hanya menemukan foto, lagu, atau teks biasa, sementara pesan rahasianya tersimpan di dalamnya tanpa tanda yang jelas. Ringkasan sejarah dan ragam tekniknya ada di Wikipedia.
Definisi steganografi menurut NIST
Glosarium keamanan NIST mengutip definisi dari beberapa dokumen. Salah satunya menyebut steganografi sebagai seni, ilmu, dan praktik berkomunikasi dengan cara yang menyembunyikan keberadaan komunikasi itu. Dokumen panduan forensik digital NIST SP 800-86 merumuskannya lebih ringkas: menyisipkan data ke dalam data lain untuk menyembunyikannya.
Yang disembunyikan adalah keberadaan pesannya. Kalau tidak ada yang curiga sebuah file menyimpan pesan, tidak ada yang berusaha membukanya.
Perbedaan steganografi dan kriptografi
Kriptografi mengacak isi pesan dengan kunci. Orang lain boleh tahu ada pesan, tetapi tidak bisa membacanya tanpa kunci. Steganografi menyembunyikan pesan di dalam file lain, jadi orang lain tidak tahu ada sesuatu yang perlu dibaca.
Keduanya bisa dipakai bersamaan. Enkripsi pesan lebih dulu, lalu sembunyikan hasilnya di dalam gambar. Kalau gambarnya ketahuan menyimpan sesuatu, isinya tetap tidak terbaca. Untuk dasar pengubahan bentuk data, baca artikel encoding dan decoding.
Istilah penting yang perlu kamu kenal
- Cover file adalah file pembawa, misalnya foto atau lagu yang dipakai untuk menyembunyikan pesan.
- Payload adalah data rahasia yang disembunyikan, bisa berupa teks, dokumen, atau file lain.
- Stego file adalah hasil akhir setelah payload disisipkan ke cover file, dan tampilannya hampir sama dengan cover file asli.
Cara kerja steganografi
Semua file digital pada dasarnya berisi deretan bit, yaitu angka 0 dan 1. Sebagian bit sangat memengaruhi tampilan atau suara, sebagian lagi nyaris tidak terasa. Steganografi memanfaatkan bagian yang nyaris tidak terasa itu untuk menyimpan data rahasia.
Alur dasar menyisipkan dan mengambil pesan
Prosesnya mirip di hampir semua tools. Pengirim memilih cover file dan payload, lalu menjalankan software yang menyisipkan payload ke dalam cover file. Stego file yang dihasilkan dikirim seperti file biasa.
Penerima menjalankan proses kebalikannya. Dia butuh software atau cara yang sama untuk membaca bit tersembunyi itu, dan sering juga password yang sudah disepakati. Tanpa itu, stego file hanya terlihat seperti file biasa.
Metode least significant bit (LSB)
LSB adalah teknik paling terkenal untuk gambar. Setiap piksel berwarna terdiri dari tiga nilai: merah, hijau, dan biru (RGB), masing-masing berkisar dari 0 sampai 255. Setiap nilai disimpan sebagai 8 bit, dan bit paling kanan paling kecil pengaruhnya pada warna.
Nilai merah 200 ditulis 11001000 dalam biner. Kalau bit terakhir diganti menjadi 1, hasilnya 11001001, yaitu 201. Selisih satu tingkat dari 256 tingkat itu nyaris mustahil dilihat mata. Dengan mengganti bit terakhir di banyak nilai warna, kamu bisa menyimpan pesan bit demi bit.
Contoh angka: menyembunyikan huruf A
Huruf A ditulis 01000001 dalam biner, jadi butuh 8 bit. Misalkan ada delapan nilai warna berurutan, lalu tiap bit dari huruf A menggantikan bit terakhir satu nilai. Angka-angkanya hanya ilustrasi dan tidak berasal dari foto tertentu.
| Nilai asli | Bit terakhir asli | Bit dari huruf A | Nilai baru |
|---|---|---|---|
| 200 | 0 | 0 | 200 |
| 13 | 1 | 1 | 13 |
| 57 | 1 | 0 | 56 |
| 142 | 0 | 0 | 142 |
| 99 | 1 | 0 | 98 |
| 254 | 0 | 0 | 254 |
| 7 | 1 | 0 | 6 |
| 180 | 0 | 1 | 181 |
Dari delapan nilai itu, hanya empat yang berubah (57, 99, 7, dan 180), dan tiap perubahan cuma satu tingkat. Penerima membaca bit terakhir dari delapan nilai tersebut, menyusunnya menjadi 01000001, lalu mendapatkan huruf A kembali.
Berapa banyak data yang muat
Kapasitasnya bisa dihitung kasar. Gambar berukuran 1000 x 1000 piksel punya satu juta piksel, dan tiap piksel punya tiga nilai warna. Kalau tiap nilai menyimpan satu bit, totalnya tiga juta bit, atau sekitar 375.000 byte. Cukup untuk teks yang sangat panjang, tetapi terlalu kecil untuk video.
Contoh steganografi dalam kehidupan sehari-hari
Steganografi tidak terbatas pada gambar. Prinsipnya bisa dipakai di media apa saja yang punya bagian longgar untuk diisi.
Contoh pada gambar
Ini yang paling umum. Kamu punya foto kucing berformat PNG, lalu menyisipkan file teks berisi catatan pribadi ke dalamnya. Hasilnya tetap foto kucing yang bisa dibuka di aplikasi galeri mana pun, tanpa tanda ada catatan di dalamnya.
Format file berpengaruh. PNG menyimpan gambar tanpa kehilangan data (lossless), jadi bit tersembunyi tetap utuh. JPEG memakai kompresi yang membuang sebagian data (lossy), sehingga penyisipan harus lebih hati-hati. Spesifikasi PNG dan situs JPEG menjelaskan kedua format itu.
Contoh pada audio
File audio juga punya bagian yang nyaris tidak terdengar kalau diubah sedikit. Menurut situs resminya, Steghide bisa menyisipkan data ke file WAV dan AU, jadi lagu yang terdengar normal bisa membawa dokumen kecil.
Contoh pada teks
Contoh paling mudah adalah akrostik: huruf pertama tiap kata disusun menjadi pesan baru. Coba baca kalimat “Aku Mau Ajak Nina”. Huruf pertamanya membentuk kata AMAN.
Cara lain memakai spasi atau karakter yang tidak terlihat. Pesan ditulis sebagai pola spasi tambahan di dalam dokumen. Tampilannya sama persis, tetapi program yang tepat bisa membaca polanya.
Contoh di luar dunia digital
Idenya lebih tua daripada komputer. Tinta tak terlihat adalah contoh klasik: pesan ditulis dengan cairan yang tidak tampak di kertas, lalu muncul kembali setelah dipanaskan atau diberi bahan tertentu. Kertas yang tampak kosong berperan sebagai cover file versi analog.
Perbandingan media untuk menyembunyikan data
Pilihan media memengaruhi jumlah data yang muat dan seberapa tahan hasilnya terhadap perubahan.
| Media | Contoh format | Kapasitas | Ketahanan terhadap kompresi |
|---|---|---|---|
| Gambar | PNG, BMP, JPEG | Besar untuk gambar beresolusi tinggi | PNG dan BMP aman, JPEG rawan rusak jika dikompres ulang |
| Audio | WAV, AU | Sedang sampai besar, tergantung durasi | WAV baik, format yang dikompres lebih rawan |
| Teks | TXT, dokumen | Sangat kecil | Mudah rusak kalau teks diformat ulang |
| Video | Berbagai format | Sangat besar | Bergantung pada kompresi tiap platform |
Mana yang cocok untuk pemula
Mulai dari gambar PNG atau BMP. Formatnya tidak membuang data, tools-nya banyak, dan hasilnya mudah dicek: sisipkan, ekstrak, lalu bandingkan dengan file asli. Setelah paham dasarnya, baru coba JPEG atau audio.
Kenapa JPEG lebih rumit
JPEG menyimpan data hasil kompresi, bukan nilai piksel mentah. Kalau kamu mengganti bit terakhir pada piksel lalu menyimpannya sebagai JPEG, nilainya berubah lagi dan pesan rusak. Tools yang mendukung JPEG, seperti Steghide, menangani hal ini dengan caranya sendiri, sedangkan skrip LSB sederhana di artikel ini sebaiknya hanya dipakai dengan PNG.
Tools steganografi yang bisa kamu coba
Ada banyak software steganografi. Tiga yang dibahas di sini punya situs resmi yang jelas, jadi kamu bisa membaca dokumentasinya sebelum memakainya.
OpenStego
OpenStego adalah software steganografi gratis dengan GUI. Situs resminya menyebut dua fungsi utama: data hiding, yaitu menyembunyikan data apa saja di dalam cover file seperti gambar, dan watermarking, yaitu menandai file dengan tanda tangan tak terlihat untuk mendeteksi penyalinan tanpa izin. Fitur watermarking masih berstatus beta.
Source code-nya ada di repository GitHub OpenStego dengan lisensi GNU GPL 2.0. Karena punya GUI, OpenStego cocok untuk pemula yang belum nyaman dengan terminal.
Steghide
Steghide adalah program command line. Situs resminya menyebut Steghide bisa menyembunyikan data di berbagai file gambar dan audio, dengan format yang didukung JPEG, BMP, WAV, dan AU. Datanya bisa dikompres dan dienkripsi sebelum disisipkan, dan Steghide menambahkan checksum untuk memastikan data hasil ekstrak masih utuh. Lisensinya GNU GPL.
Situs yang sama mencantumkan versi 0.5.1, dirilis 15 Oktober 2003, sebagai versi terkini. Artinya program ini sudah lama tidak diperbarui, jadi cocok untuk belajar dan eksperimen. Untuk data yang benar-benar sensitif, cari tools yang masih dirawat.
Python dengan Pillow
Kalau ingin paham cara kerjanya dari dalam, tulis programnya sendiri. Python dengan library Pillow sudah cukup untuk membaca dan mengubah isi gambar. Contoh kodenya ada di bagian praktik.
Cara mencoba steganografi langkah demi langkah
Ada dua jalur: Steghide lewat terminal di Linux, atau skrip Python yang bisa jalan di Windows, macOS, dan Linux. Pilih satu sesuai kenyamananmu. Kalau belum terbiasa dengan terminal, artikel tentang Termux membantu mengenal lingkungan command line.
Siapkan file
Kamu butuh dua file: cover file seperti foto.jpg atau foto.png, dan payload seperti rahasia.txt berisi pesan singkat. Pakai file milikmu sendiri supaya tidak ada urusan hak cipta atau privasi orang lain, dan simpan salinan cover file asli di tempat terpisah sebagai pembanding.
Sembunyikan pesan dengan Steghide
Di Debian atau Ubuntu, Steghide biasanya bisa dipasang lewat package manager dengan perintah berikut.
sudo apt install steghideSetelah terpasang, sisipkan rahasia.txt ke dalam foto.jpg dengan perintah ini.
steghide embed -cf foto.jpg -ef rahasia.txt -sf foto-stego.jpgOpsi -cf menunjuk cover file, -ef menunjuk file yang disisipkan, dan -sf menentukan nama stego file. Steghide akan meminta password. Pilih password yang kuat dan jangan sampai lupa, karena kamu membutuhkannya saat mengekstrak.
Ekstrak pesan dari stego file
Untuk membaca pesannya kembali, jalankan perintah ini lalu masukkan password yang sama.
steghide extract -sf foto-stego.jpgHasilnya adalah file rahasia.txt dengan isi yang sama seperti semula. Perintah steghide info foto-stego.jpg menampilkan keterangan file setelah password dimasukkan.
Contoh kode Python dengan metode LSB
Kode berikut menyisipkan teks ke gambar PNG dengan metode LSB, lalu membacanya kembali. Pasang Pillow lebih dulu dengan perintah pip install pillow, dan pakai PNG sebagai input maupun output karena formatnya tidak membuang data. Saya sudah menjalankannya, dan pesan berhasil dibaca kembali, termasuk karakter beraksen.
from PIL import Image
END = b"\x00" # satu byte nol sebagai penanda akhir pesan
def hide(cover_path, message, stego_path):
image = Image.open(cover_path).convert("RGB")
data = bytearray(image.tobytes()) # urutan byte: R, G, B, R, G, B, ...
payload = message.encode("utf-8") + END
bits = [(byte >> shift) & 1 for byte in payload for shift in range(7, -1, -1)]
if len(bits) > len(data):
raise ValueError("Pesan terlalu panjang untuk gambar ini")
for i, bit in enumerate(bits):
data[i] = (data[i] & 0b11111110) | bit # ganti bit terakhir
Image.frombytes("RGB", image.size, bytes(data)).save(stego_path, "PNG")
def extract(stego_path):
data = Image.open(stego_path).convert("RGB").tobytes()
message = bytearray()
for start in range(0, len(data) - 7, 8):
byte = 0
for value in data[start:start + 8]:
byte = (byte << 1) | (value & 1) # kumpulkan bit terakhir
if byte == 0:
break
message.append(byte)
return message.decode("utf-8")
hide("foto.png", "Halo dari dalam gambar", "foto-stego.png")
print(extract("foto-stego.png"))Fungsi hide mengubah pesan menjadi deretan bit, menambahkan satu byte nol sebagai penanda akhir, lalu mengganti bit terakhir di setiap byte warna. Fungsi extract mengumpulkan bit terakhir itu kembali sampai bertemu byte nol. Dalam uji saya, tiap byte warna paling banyak berubah satu tingkat.
Kode ini sengaja sederhana untuk belajar, dan pesannya tidak dienkripsi, jadi siapa pun yang tahu metodenya bisa membacanya. Setelah menjalankannya, buka foto.png dan foto-stego.png berdampingan. Kamu tidak akan melihat perbedaan, tetapi extract tetap bisa mengembalikan teksnya.
Kelebihan dan batasan steganografi
Steganografi berguna di situasi tertentu, tetapi punya batasan teknis dan sisi etika yang perlu kamu pahami sebelum memakainya.
Kapan steganografi berguna
Teknik ini berguna saat keberadaan komunikasi itu sendiri yang perlu dirahasiakan. Contoh lain adalah penanda kepemilikan pada karya digital, seperti fitur watermarking di OpenStego yang membantu pemilik mendeteksi penyalinan tanpa izin. Steganografi juga sering dipakai untuk belajar, misalnya di mata kuliah keamanan informasi atau kompetisi capture the flag (CTF).
Batasan teknis
Kapasitas cover file terbatas. Makin banyak data yang disisipkan, makin besar perubahan pada file dan makin mudah ketahuan oleh tools analisis (steganalysis). Stego file juga rapuh: mengubah ukuran, mengonversi format, atau mengompres ulang bisa merusak bit tersembunyi.
Ini penting kalau kamu terbiasa mengecilkan foto sebelum mengirimnya. Langkah di panduan cara mengecilkan ukuran foto tanpa mengurangi kualitas bisa menghapus pesan di dalam stego file kalau diterapkan padanya.
Sisi etika dan hukum
Karena sulit dideteksi, steganografi bisa disalahgunakan untuk menyembunyikan data berbahaya, dan itu sebabnya tim digital forensics mempelajarinya. Panduan NIST SP 800-86 yang disebut di atas membahas konteks forensik ini. Pakai teknik ini hanya untuk file milikmu dan tujuan yang sah, karena menyembunyikan data curian atau malware di dalam file lain melanggar hukum di banyak tempat. Kalau kamu ingin tahu cara mengenali ancaman lewat pesan atau lampiran, baca artikel spam adalah.
Tips aman memakai steganografi
Menyembunyikan pesan saja belum cukup. Beberapa kebiasaan sederhana membuat hasilnya lebih aman dan awet.
Lakukan enkripsi lebih dulu
Anggap stego file bisa ketahuan suatu hari. Kalau pesan di dalamnya sudah dienkripsi, penemunya hanya mendapat data acak. Steghide menyediakan enkripsi lewat password, sedangkan di skrip Python kamu perlu menambahkannya sendiri sebelum menyisipkan pesan.
Jaga file tetap utuh
Simpan stego file apa adanya. Jangan ubah ukuran, jangan konversi format, dan jangan edit di aplikasi foto. Banyak layanan berbagi foto dan media sosial memproses ulang gambar yang diunggah, sehingga bit tersembunyi bisa hilang. Kalau perlu mengirimnya, pakai cara yang mengirim file apa adanya, lalu cek dengan mengekstrak ulang dari salinan yang diterima.
Pakai file milikmu sendiri
Gunakan foto atau audio buatanmu sendiri sebagai cover file. Selain bebas urusan hak cipta, file orisinal tidak punya versi pembanding di internet. Gambar populer mudah dibandingkan dengan aslinya, dan perbedaan kecil di dalamnya bisa menjadi petunjuk.
Kesalahan umum saat mencoba steganografi
Pemula biasanya tersandung di beberapa titik yang sama, dan semuanya bisa dihindari kalau sudah tahu sejak awal.
Menganggap steganografi sama dengan enkripsi
Tanpa enkripsi, pesan yang ketahuan langsung terbaca. Begitu seseorang tahu metodenya, isinya terbuka begitu saja, jadi untuk isi yang sensitif enkripsi tetap wajib.
Memakai JPEG tanpa tahu risikonya
JPEG membuang sebagian data saat disimpan. Kalau kamu menyisipkan pesan dengan LSB sederhana lalu menyimpannya sebagai JPEG, pesannya rusak. Tools seperti Steghide dirancang untuk JPEG, tetapi skrip buatan sendiri paling aman memakai PNG.
Menyisipkan pesan yang terlalu besar
Pesan besar memaksa banyak piksel berubah, dan perubahan itu bisa mulai terlihat atau terdeteksi. Hitung kapasitas gambar dulu. Kalau perlu, pakai gambar beresolusi lebih tinggi atau pesan yang lebih pendek.
Pertanyaan yang sering diajukan
Pertanyaan yang paling sering muncul berkisar pada contoh paling sederhana, bedanya dengan enkripsi, legalitas, dan keamanan saat gambar dikirim lewat aplikasi chat.
Apa contoh steganografi yang paling sederhana?
Akrostik pada teks. Huruf pertama tiap kata atau tiap baris disusun menjadi pesan tersembunyi, seperti “Aku Mau Ajak Nina” yang menyimpan kata AMAN. Untuk gambar, contoh paling sederhana adalah metode LSB pada file PNG.
Apakah steganografi sama dengan enkripsi?
Tidak. Enkripsi mengacak isi pesan, sedangkan steganografi menyembunyikan keberadaan pesan. Keduanya bisa dipakai bersamaan untuk perlindungan yang lebih baik.
Apakah steganografi legal?
Tekniknya sendiri legal dan dipelajari di bidang keamanan informasi. Yang bermasalah adalah tujuannya. Memakainya untuk menyembunyikan data curian atau kode berbahaya dapat melanggar hukum, jadi pastikan kamu memakainya untuk tujuan yang sah.
Apakah gambar hasil steganografi bisa dikirim lewat WhatsApp atau media sosial?
Bisa dikirim, tetapi pesannya berisiko hilang. Banyak aplikasi memproses ulang gambar yang dikirim atau diunggah, dan proses itu dapat merusak bit tersembunyi. Cek dengan mengekstrak ulang dari salinan yang diterima sebelum mengandalkannya.
Kesimpulan
Steganografi menyembunyikan pesan di dalam file lain, sehingga keberadaan pesan itu tidak disadari siapa pun yang melihat hasilnya. Contoh steganografi bisa kamu temukan pada gambar, audio, teks, bahkan kertas dengan tinta tak terlihat. Metode LSB pada gambar PNG adalah cara termudah untuk memahami prinsipnya, dan OpenStego, Steghide, atau skrip Python bisa dipakai untuk berlatih.
Langkah berikutnya: ambil satu foto PNG milikmu, jalankan skrip Python di atas, lalu bandingkan hasilnya dengan foto asli. Kalau kamu penasaran dengan cara lain data disimpan di dalam gambar, baca juga cara scan barcode.