Penjelasan Base64 Encoding Apa Itu, Apa Bukan, dan Kapan Menggunakannya
Jika Anda pernah melihat dinding huruf seperti SGVsbG8gV29ybGQ= dan menganggapnya terenkripsi — Anda tidak sendirian. Base64 adalah salah satu alat yang paling salah dipahami dalam toolkit pengembang. Ini adalah bukan enkripsi. Ini tidak melindungi data Anda. Ini hanya membuat data biner aman untuk perjalanan melalui sistem hanya teks.
Apa Itu Base64 Sebenarnya
Base64 adalah skema pengkodean yang mengubah data biner menjadi string 64 karakter ASCII yang dapat dicetak: A–Z, a–z, 0–9, +, Dan /. Nama berasal dari ukuran set karakter itu — 64 simbol, masing-masing mewakili 6 bit data.
Setiap 3 byte input (24 bit) memetakan ke 4 karakter Base64 (4 × 6 bit = 24 bit). Jika panjang input tidak dapat dibagi 3, = karakter padding mengisi kelompok akhir. Itulah mengapa Anda sering melihat satu atau dua tanda sama dengan di akhir string Base64.
Mengapa Itu Ada
Beberapa saluran dibangun ketat untuk teks. Protokol email lama (SMTP), header HTTP, payload JSON, dan atribut HTML semuanya memiliki batasan pada byte apa yang dapat mereka bawa tanpa kesalahpahaman. File biner mentah yang dilewatkan melalui saluran tersebut dapat menjadi rusak — byte null dihapus, akhir baris diubah, karakter kontrol memicu perilaku yang tidak diinginkan.
Base64 mengatasi semua itu. Dengan mengonversi biner ke satu set karakter yang dapat dicetak yang dapat diprediksi, Anda dapat dengan aman menyematkan gambar di CSS data URI, melampirkan file ke email, memasukkan token ke header HTTP, dan menyertakan payload biner di dalam JSON. Pertukaran: data yang dikodekan kira-kira 33% lebih besar dari aslinya.
Cara Pengkodean Bekerja (Versi Singkat)
Ambil string Man. Dalam byte ASCII: 77 97 110. Dalam biner: 01001101 01100001 01101110. Bagi menjadi grup 6-bit: 010011 010110 000101 101110. Petakan masing-masing ke alfabet Base64: T W F u → TWFu.
Padding masuk ketika ada byte yang tersisa. Satu byte yang tersisa menghasilkan dua karakter Base64 plus ==. Dua byte yang tersisa menghasilkan tiga karakter plus =.
Base64 Bukan Keamanan
Ini perlu diulang. Base64 dapat dibalik oleh siapa pun dengan decoder — tidak ada kunci yang diperlukan, tidak ada kata sandi yang diperlukan. Menggunakannya untuk "menyembunyikan" kata sandi, token, atau data sensitif dalam kode sisi klien memberikan perlindungan nol. Penyerang tahu seperti apa Base64. Tanda = adalah pengungkap.
Jika Anda perlu melindungi data saat istirahat, gunakan enkripsi yang tepat (AES-256). Jika Anda perlu melindungi data dalam transit, gunakan TLS. Base64 adalah kenyamanan transportasi, bukan lapisan keamanan.
Kapan Menggunakan Base64
- Data URI — sematkan gambar langsung di HTML atau CSS:
src="data:image/png;base64,iVBOR..." - Header Autentikasi Dasar — Autentikasi HTTP Dasar mengkodekan
username:passwordsebagai Base64 diAuthorizationheader (masih memerlukan HTTPS untuk keamanan sebenarnya) - JWT — JSON Web Token menggunakan Base64URL untuk mengkodekan bagian header dan payload
- Payload biner di JSON/XML — ketika format API atau pesan hanya berbicara teks
- Lampiran email — Pengkodean MIME menggunakan Base64 untuk bagian file biner
Untuk pengkodean dan dekoding cepat di browser Anda, IO Tools pengkode/dekoder Base64 menangani varian standar dan aman URL tanpa memasang apa pun.
Pengkodean dan Dekoding dalam Praktik
Ular piton
import base64
# Encode
encoded = base64.b64encode(b"Hello, World!")
print(encoded) # b'SGVsbG8sIFdvcmxkIQ=='
# Decode
decoded = base64.b64decode(b"SGVsbG8sIFdvcmxkIQ==")
print(decoded) # b'Hello, World!'
Bash
# Encode
echo -n "Hello, World!" | base64
# SGVsbG8sIFdvcmxkIQ==
# Decode
echo "SGVsbG8sIFdvcmxkIQ==" | base64 --decode
# Hello, World!
JavaScript (Browser & Node.js)
// Encode (browser)
const encoded = btoa("Hello, World!");
console.log(encoded); // SGVsbG8sIFdvcmxkIQ==
// Decode (browser)
const decoded = atob("SGVsbG8sIFdvcmxkIQ==");
console.log(decoded); // Hello, World!
// Node.js
const enc = Buffer.from("Hello, World!").toString("base64");
const dec = Buffer.from(enc, "base64").toString("utf8");
Catatan: btoa Dan atob hanya menangani karakter Latin-1 di browser. Untuk string Unicode, ubah ke representasi byte terlebih dahulu menggunakan TextEncoder.
Base64 Standar vs Base64 Aman URL
Base64 standar menggunakan + Dan / — kedua karakter dengan makna khusus dalam URL dan string kueri. Base64 yang aman URL menukarnya untuk menghindari sakit kepala pengkodean:
| Properti | Base64 Standar | Base64 Aman URL |
|---|---|---|
| Set karakter | A–Z, a–z, 0–9, +, / | A–Z, a–z, 0–9, -, _ |
| Lapisan | = (diperlukan) | = (sering dihilangkan) |
| Aman URL? | Tidak — + Dan / harus dikodekan persen | Ya — aman di URL dan nama file |
| Penggunaan umum | Email, MIME, pengkodean umum | Token JWT, OAuth, parameter URL |
Di Python, gunakan base64.urlsafe_b64encode() untuk keluaran yang aman URL. JWT khususnya menghapus trailing = padding — yang bagus, karena decoder dapat menyimpulkannya dari panjang string.
Kesimpulan Praktis
Base64 memecahkan masalah yang spesifik dan terdefinisi dengan baik: memindahkan data biner melalui saluran hanya teks tanpa korupsi. Ini melakukan pekerjaan itu dengan baik. Ini tidak melindungi data, mengompresinya, atau memvalidasinya. Ketika Anda perlu mengkodekan dekode Base64 data — baik itu gambar, token, atau blob biner — sekarang Anda tahu persis apa yang Anda lakukan dan mengapa. Gunakan alat yang tepat untuk pekerjaan yang tepat, dan gunakan enkripsi setiap kali keamanan sebenarnya adalah tujuannya.
Anda mungkin juga menyukai
Instal Ekstensi Kami
Tambahkan alat IO ke browser favorit Anda untuk akses instan dan pencarian lebih cepat
恵 Papan Skor Telah Tiba!
Papan Skor adalah cara yang menyenangkan untuk melacak permainan Anda, semua data disimpan di browser Anda. Lebih banyak fitur akan segera hadir!
Alat Wajib Coba
Lihat semua Pendatang baru
Lihat semuaMemperbarui: Kita alat terbaru ditambahkan pada 14 Apr 2026
