Apa itu Encoding Base64? Penjelasan Lengkap
Jawaban Cepat
Pengkodean Base64 mengubah data biner menjadi teks menggunakan 64 karakter yang dapat dicetak (A-Z, a-z, 0-9, +, /). Setiap 3 byte input menjadi 4 Base64 karakter. Base64 dapat dibalik (bukan enkripsi) dan meningkatkan ukuran data sebesar ~33%. Gunakan Encoder dan Decoder Base64 gratis kami untuk mengonversi di browser Anda.
Perkenalan
Base64 adalah skema pengkodean biner-ke-teks yang mengubah data biner menjadi representasi string ASCII menggunakan 64 karakter yang dapat dicetak. Ini ditentukan oleh RFC 4648 dan biasanya digunakan untuk menyandikan data yang perlu dikirim melalui media yang dirancang untuk menangani teks — lampiran email (MIME), Data URLs di HTML/CSS, bagian token JWT, dan muatan JSON yang berisi data biner. Base64 adalah pengkodean, bukan enkripsi — ini sepenuhnya dapat dibalik dan tidak memerlukan kunci. Siapa pun dapat memecahkan kode Base64, sehingga tidak memberikan kerahasiaan.
Langkah demi Langkah
-
Pahami rangkaian karakter
Base64 menggunakan 64 karakter: A-Z (26), a-z (26), 0-9 (10), + dan / (2). Karakter = digunakan untuk padding ketika panjang input bukan kelipatan 3. Varian URL-safe menggantikan + dengan - dan / dengan _ dan menghilangkan padding.
-
Pelajari cara kerja pengkodean
Base64 memproses input dalam blok 3-byte (24-bit). Setiap blok 24-bit dibagi menjadi empat kelompok 6-bit. Setiap nilai 6-bit (0-63) dipetakan ke salah satu dari 64 karakter. Jika input bukan kelipatan 3, padding (=) ditambahkan: input 1 byte → 2 Base64 karakter + ==, 2 byte → 3 karakter + =.
-
Pahami ukuran overhead
Base64 meningkatkan ukuran data sekitar 33% — setiap 3 byte menjadi 4 karakter. File 1 MB menjadi ~1,33 MB saat dikodekan Base64. Overhead ini merupakan trade-off untuk kompatibilitas hanya teks.
-
Bedakan pengkodean dari enkripsi
Base64 adalah pengkodean, bukan enkripsi. Ini dapat dibalik tanpa kunci — siapa pun dapat memecahkan kodenya. Base64 tidak memberikan kerahasiaan; itu hanya mengubah biner menjadi teks untuk transportasi. Jangan pernah menggunakan Base64 untuk menyimpan kata sandi atau rahasia.
Contoh
Menyandikan teks
Masukan: Hello, World!
Keluaran: SGVsbG8sIFdvcmxkIQ==
Mengkodekan data biner (ditampilkan sebagai hex)
Masukan: Byte: 0x00 0x01 0x02
Keluaran: AAEC
URL-aman Base64 (gaya JWT)
Masukan: Standard: SGVsbG8= → URL-safe: SGVsbG8 (no padding, - and _ for + and /)
Keluaran: Digunakan dalam token JWT dan parameter URL
Masalah Umum
- Memperlakukan Base64 sebagai enkripsi —Base64 dapat dibalik tanpa kunci. Siapa pun dapat memecahkan kodenya. Jangan pernah menggunakannya untuk melindungi data sensitif.
- Karakter non-ASCII —naif btoa() muncul di Unicode. Gunakan TextEncoder + btoa(unescape(encodeURIComponent(text))) atau alat yang mendukung UTF-8.
- Penghapusan padding — = padding adalah bagian dari pengkodean. Menghapusnya akan merusak decoding (meskipun beberapa decoder dapat merekonstruksinya).
- Overhead ukuran —Base64 menambahkan ~33% ke ukuran data. Untuk file besar, ini penting; pertimbangkan apakah pengkodean diperlukan.
Kiat
- Gunakan Base64 untuk Data URLs untuk menyematkan gambar kecil di HTML/CSS tanpa permintaan HTTP terpisah.
- Gunakan URL-safe Base64 (ganti + dengan -, / dengan _, strip padding) untuk token URLs dan JWT.
- Base64 bukan enkripsi — gunakan untuk kompatibilitas transportasi, bukan untuk kerahasiaan.
- Gunakan Encoder dan Decoder Base64 kami untuk konversi pribadi secara instan di browser Anda.