Encode Base64
Alat encode dan decode Base64 gratis online dengan dukungan UTF-8 / ASCII / ISO-8859-1 serta tiga varian Standard / URL-Safe / MIME. Rasio pembengkakan ukuran ditampilkan real-time, dan line break MIME mengikuti RFC 2045.
Rekomendasi Terkait
Apa itu encode Base64?
Base64 adalah skema encoding biner ke teks yang menggunakan 64 karakter ASCII yang bisa dicetak. Skema ini pertama kali diperkenalkan di RFC 2045 (standar MIME). Base64 mengubah setiap 3 byte (24 bit) menjadi 4 karakter Base64 (A-Z, a-z, 0-9, +, /) sehingga data biner aman dikirim lewat sistem yang hanya mendukung teks seperti HTTP header, JSON payload, XML, atau parameter URL.
**Base64 bukan enkripsi**. Ia hanya mengubah format data dan siapa pun bisa mendekodekannya dengan mudah. Jika Anda perlu melindungi data sensitif, gunakan enkripsi sungguhan seperti AES. Penggunaan umum Base64 meliputi HTTP Basic Authentication, segmen header dan payload JWT (format Base64URL), Data URI, dan encoding MIME untuk lampiran email.
**URL-Safe Base64** (RFC 4648 §5) mengganti + dan / pada Base64 standar menjadi - dan _, lalu biasanya menghilangkan padding =. Ini membuat hasil encoding aman dipakai di URL, path file, atau field JSON. JWT, OAuth PKCE code_verifier, dan AWS Signature V4 memakai varian ini.
**Line wrapping MIME** adalah aturan RFC 2045 yang membatasi setiap baris maksimal 76 karakter. Saat konten Base64 digunakan untuk email atau tampilan multi-baris tertentu, varian MIME otomatis menambahkan line break (`\n`) setiap 76 karakter.
Alat ini memakai **btoa / atob API** bawaan browser dengan logika aman untuk UTF-8, sehingga karakter multibyte seperti teks Asia dan emoji bisa diproses dengan benar. Semua proses berjalan lokal dan data tidak dikirim ke server mana pun.
Kasus penggunaan
- Debug JWT: decode segmen header dan payload JWT (Base64URL) untuk melihat klaim token
- Basic Auth: encode username:password untuk kredensial HTTP Basic
- Pengembangan OAuth: menghasilkan code_verifier untuk PKCE atau memeriksa code_challenge
- Debug API: encode data JSON atau decode field Base64 dari respons API
- Menyisipkan gambar dengan Data URI: ubah ikon kecil menjadi data:image/...;base64,... untuk CSS / HTML
- Encoding lampiran email: gunakan format MIME Base64 untuk data biner di email
Cara Penggunaan
- Pilih mode: klik Encode atau Decode untuk menentukan arah pemrosesan
- Pilih varian: Standard, URL-Safe (JWT / OAuth), atau MIME (76 karakter per baris untuk email)
- Masukkan data: tempel teks atau string Base64, hasil diproses otomatis secara real-time
- Lihat statistik: bagian bawah menampilkan jumlah karakter dan rasio pembengkakan ukuran
- Salin hasil: sekali klik untuk menyalin string Base64 atau teks yang sudah didekode
Fitur
- Switch Encode / Decode sekali klik: bebas berpindah mode dan memakai output sebagai input berikutnya
- Dukungan tiga charset: UTF-8, ASCII, dan ISO-8859-1 untuk berbagai kebutuhan
- Tiga varian output: Standard, URL-Safe (JWT / OAuth / PKCE), dan MIME (line break 76 karakter sesuai RFC 2045)
- Statistik ukuran real-time: menampilkan jumlah karakter input / output dan rasio pembengkakan
- Pesan error yang jelas: saat karakter tidak valid muncul, alat menampilkan penjelasan yang lebih spesifik
- Pembatas yang bisa digeser: di desktop Anda bisa mengatur proporsi area editor kiri dan kanan
- Tab terpisah di mobile: pengguna ponsel dan tablet bisa berpindah antara input dan output dengan lebih nyaman
Contoh Kode
Encode Base64 di JavaScript (mendukung UTF-8)
// Encode (UTF-8 safe)
function b64Encode(str) {
return btoa(unescape(encodeURIComponent(str)));
}
// Decode (UTF-8 safe)
function b64Decode(str) {
return decodeURIComponent(escape(atob(str)));
}
// URL-Safe encode (JWT / OAuth)
function b64UrlEncode(str) {
return btoa(unescape(encodeURIComponent(str)))
.replace(/\+/g, '-')
.replace(/\//g, '_')
.replace(/=+$/, '');
}
console.log(b64Encode('Hello dunia'));Encode Base64 di Python
import base64
encoded = base64.b64encode('Hello dunia'.encode('utf-8'))
print(encoded.decode())
decoded = base64.b64decode(encoded).decode('utf-8')
print(decoded)
url_safe = base64.urlsafe_b64encode('Hello dunia'.encode('utf-8'))
print(url_safe.decode())
url_safe_no_pad = url_safe.decode().rstrip('=')
print(url_safe_no_pad)Encode Base64 di Java
import java.nio.charset.StandardCharsets;
import java.util.Base64;
public class Base64Example {
public static void main(String[] args) {
String text = "Hello dunia";
String encoded = Base64.getEncoder()
.encodeToString(text.getBytes(StandardCharsets.UTF_8));
System.out.println(encoded);
}
}Pertanyaan Umum
Apakah encode Base64 sama dengan enkripsi?
Tidak. Base64 hanya mengubah teks ke representasi lain yang bisa dibalik, dan siapa pun bisa mendekodekannya kembali. Jika Anda menangani data sensitif seperti password atau token, gunakan enkripsi sungguhan seperti AES. Base64 cocok untuk konversi format agar data biner bisa lewat sistem berbasis teks.
Alat enkripsi AESBerapa besar ukuran data setelah di-encode Base64?
Base64 biasanya menambah ukuran data sekitar 33%. Ini karena setiap 3 byte (24 bit) diubah menjadi 4 karakter Base64. Misalnya, teks 100 byte menjadi sekitar 133 byte setelah di-encode. Alat ini menampilkan rasio pembengkakan secara real-time.
Statistik Base64Apa perbedaan antara Standard, URL-Safe, dan MIME?
Standard adalah Base64 biasa dengan karakter A-Z, a-z, 0-9, +, /. URL-Safe mengganti + dan / menjadi - dan _, sehingga lebih aman untuk URL dan JWT. MIME menambahkan line break tiap 76 karakter sesuai RFC 2045 dan cocok untuk lampiran email atau teks multi-baris.
URL-Safe Base64MIME Base64Bagaimana cara mendekode header atau payload JWT?
JWT memakai Base64URL, yaitu varian URL-Safe. Pilih mode URL-Safe lalu tempel segmen pertama (header) atau kedua (payload) dari JWT untuk mendekodenya. Segmen ketiga adalah signature dan biasanya bukan bagian yang dibaca seperti teks biasa.
Alat JWTApa itu padding (=) di Base64?
Hasil Base64 harus memiliki panjang kelipatan 4. Jika panjang input tidak habis dibagi 3 byte, maka karakter = ditambahkan di akhir untuk melengkapinya. Standard Base64 memakai padding, sedangkan Base64URL sering menghilangkannya. Alat ini menangani padding secara otomatis.
Alat Base64 PaddingMengapa btoa dan atob di JavaScript tidak langsung mendukung karakter seperti bahasa Indonesia beraksen atau emoji?
btoa dan atob bekerja pada string Latin-1 (ISO-8859-1) dengan asumsi 1 karakter = 1 byte. Karakter UTF-8 multibyte seperti emoji memerlukan langkah konversi lebih dulu. Umumnya string diubah ke urutan UTF-8 dengan encodeURIComponent sebelum diproses oleh btoa.
Apa itu Data URI Scheme dan bagaimana memakai Base64 untuk menyisipkan gambar?
Data URI adalah format URI yang menaruh data langsung di dalam URL dengan sintaks `data:[<mediatype>][;base64],<data>`. Contohnya `data:image/png;base64,iVBORw0KGgo...`. Cocok untuk ikon kecil atau background CSS agar mengurangi jumlah request HTTP. Karena Base64 menambah ukuran sekitar 33%, cara ini lebih cocok untuk file kecil.
Alat Data URIBase64 ke gambarGlosarium
- RFC 4648
- Standar resmi IETF untuk encoding Base16 / Base32 / Base64. Dokumen ini mendefinisikan Base64 standar, URL-Safe Base64, aturan padding, line break, dan penanganan karakter di luar alfabet.Alat URL-Safe Base64Alat Base64 Padding
- RFC 2045 (MIME)
- Standar MIME yang pertama kali menetapkan Base64 sebagai encoding untuk transmisi isi email. Dokumen ini mengatur batas 76 karakter per baris dan line break CRLF untuk varian MIME Base64.Alat MIME Base64
- Base64URL (URL-Safe Base64)
- Varian aman URL yang didefinisikan di RFC 4648 §5. Mengganti + dengan -, / dengan _, dan biasanya menghapus padding =. Sangat umum dipakai di JWT, OAuth PKCE, parameter URL, dan nama file.Alat URL-Safe Base64Alat JWT
- MIME Base64
- Varian Base64 yang sesuai RFC 2045 dan menambahkan line break tiap 76 karakter. Umumnya dipakai untuk lampiran email.Alat MIME Base64
- Padding
- Hasil Base64 harus memiliki panjang kelipatan 4. Jika jumlah byte input bukan kelipatan 3, karakter = ditambahkan di akhir. Base64 standar menggunakannya, sedangkan Base64URL sering menghilangkannya.Alat Base64 Padding
- Alfabet Base64
- Kumpulan 64 karakter yang dipakai Base64: A-Z, a-z, 0-9, +, /. Karakter = dipakai sebagai padding jika diperlukan.
- btoa / atob
- API bawaan browser untuk encode dan decode Base64. btoa berarti binary to ASCII, atob berarti ASCII to binary. Keduanya berbasis Latin-1 sehingga perlu penyesuaian saat memproses UTF-8.
- Data URI Scheme
- Format URI yang menyimpan data langsung di dalam URL, seperti data:[<mediatype>][;base64],<data>. Sering dipakai untuk ikon kecil atau background CSS agar tidak perlu request tambahan.Alat Data URIBase64 ke gambar
- HTTP Basic Authentication
- Metode autentikasi HTTP yang menggabungkan username dan password dengan titik dua, lalu meng-encode hasilnya ke Base64 untuk dikirim di header Authorization.Builder Auth Header
- Rasio pembengkakan Base64
- Persentase kenaikan ukuran data setelah di-encode ke Base64. Karena 3 byte menjadi 4 karakter, kenaikannya sekitar 33%.
Perbandingan tiga varian Base64
| Fitur | Standard | URL-Safe | MIME |
|---|---|---|---|
| Karakter khusus | + / | - _ | + / |
| Padding (=) | Dipakai | Biasanya dihilangkan | Dipakai |
| Baris baru | Tidak ada | Tidak ada | Ganti baris tiap 76 karakter |
| Standar | RFC 4648 §4 | RFC 4648 §5 | RFC 2045 |
| Kasus umum | Data URI, encoding umum | JWT, parameter URL, nama file | Lampiran email, transmisi SMTP |
Tabel perbandingan encoding keluarga Base
| Encoding | Jumlah karakter | Ciri charset | Pembengkakan ukuran | Penggunaan umum |
|---|---|---|---|---|
Base16 (Hex) | 16 | 0-9, A-F | 100% | Debug, tampilan hash |
Base32 | 32 | A-Z, 2-7 | 60% | DNS, kunci TOTP, QR code |
Base58 | 58 | Menghapus 0/O/I/l yang membingungkan | 38% | Alamat Bitcoin, kripto |
Base62 | 62 | A-Z, a-z, 0-9 | 34% | Short URL, encoding ID |
Base64 | 64 | A-Z, a-z, 0-9, +, / | 33% | Data URI, MIME, JWT (varian URL-Safe) |
Authoritative References
- ReferenceRFC 4648 - The Base16, Base32, and Base64 Data Encodings
- ReferenceRFC 2045 - MIME Part One: Format of Internet Message Bodies
- ReferenceRFC 7519 - JSON Web Token (JWT)
- ReferenceMDN Web Docs - btoa()
- ReferenceMDN Web Docs - atob()
- ReferenceWikipedia - Base64
- Perbandingan Teks Aman
- Konversi Biner
- Sandi Caesar
- Kode Morse
- Konversi Hexadesimal
- Video ke Base64
- Base64 ke Video
- Gambar ke Base64
- Base64 ke Gambar
- Teks ke Base64
- Base64 ke Teks
- Pemeriksa hash file
- File ke Base64
- Base64 ke File
- Audio ke Base64
- Base64 ke Audio
- Enkripsi dan Dekripsi AES
- Enkripsi & Dekripsi DES
- Encoder Decoder Base32
- Base58 pengkodean dan penguraian kode
- Encode Base64
- Dekode Base64
- Bandingkan Base64
- Pisahkan Base64
- Penggabungan Base64 multi-baris
- Format Base64
- Validasi Format Base64
- Pengkodean Base64 Massal
- Decode Base64 Massal
- Pembersihan Base64
- Pemrosesan Padding Base64
- Statistik Panjang Base64
- Base64 ke Hex
- Konverter Base64 DataURL
- Konverter Base64-Hex
- Encoder & Decoder Base85
- Generator & Verifikasi HMAC
- PBKDF2 Generator
- Hash MD5
- Hash SHA-256
- Hash SHA1
- Hash SHA512
- Decode JWT
- Encoding & Decoding Entitas HTML
- Unicode Escape
- Enkode URL
- URL Safe Base64
- MIME Base64
- Obfuscasi Java
- Obfuscasi JS
- Obfuscasi PHP
- Python Obfuscator