Tidak suka iklan? Pergi Bebas Iklan Hari ini

Penjelasan Base64 Encoding Apa Itu, Apa Bukan, dan Kapan Menggunakannya

Diterbitkan pada
Penjelasan Base64 Encoding: Apa Itu, Apa Bukan, dan Kapan Menggunakannya 1
IKLAN · MENGHAPUS?

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 uTWFu.

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:password sebagai Base64 di Authorization header (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:

PropertiBase64 StandarBase64 Aman URL
Set karakterA–Z, a–z, 0–9, +, /A–Z, a–z, 0–9, -, _
Lapisan= (diperlukan)= (sering dihilangkan)
Aman URL?Tidak — + Dan / harus dikodekan persenYa — aman di URL dan nama file
Penggunaan umumEmail, MIME, pengkodean umumToken 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.

Ingin bebas iklan? Bebas Iklan Hari Ini

Instal Ekstensi Kami

Tambahkan alat IO ke browser favorit Anda untuk akses instan dan pencarian lebih cepat

Ke Ekstensi Chrome Ke Ekstensi Tepi Ke Ekstensi Firefox Ke Ekstensi Opera

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!

IKLAN · MENGHAPUS?
IKLAN · MENGHAPUS?
IKLAN · MENGHAPUS?

Pojok Berita dengan Sorotan Teknologi

Terlibat

Bantu kami untuk terus menyediakan alat gratis yang berharga

Belikan aku kopi
IKLAN · MENGHAPUS?