Dekode Base64
Alat decode Base64 online gratis untuk mengubah string Base64 kembali menjadi teks asli. Mendukung banyak charset dan cocok untuk troubleshooting API serta pemulihan log.
Rekomendasi Terkait
Apa itu decode Base64?
Decode Base64 adalah proses kebalikan dari encode Base64: mengubah string Base64 (seperti SGVsbG8=) kembali menjadi teks asli atau data biner. Base64 adalah metode encoding yang mewakili data biner dengan 64 karakter ASCII yang dapat dicetak (A-Z, a-z, 0-9, +, /), sebagaimana didefinisikan dalam RFC 4648.
**Kegunaan umum decode:** encoding Base64 banyak dipakai pada header HTTP Basic Authentication, segmen payload token JWT, field respons API, Data URI (seperti `data:image/png;base64,...`), encoding MIME lampiran email, dan penyimpanan field BLOB di database. Decode konten semacam ini adalah pekerjaan umum saat development dan debugging.
**Langkah penting saat decode:** saat mendekode Base64, Anda perlu menangani dengan benar: 1) charset (UTF-8 untuk karakter multibyte seperti bahasa Tionghoa, ASCII untuk teks Inggris murni); 2) Padding (`=`), karena panjangnya harus kelipatan 4; 3) varian URL-safe (`-` dan `_` menggantikan `+` dan `/`); 4) line break dan spasi (Base64 standar tidak memakai line break, sedangkan MIME menambahkan line break tiap 76 karakter).
**Dukungan native browser:** browser menyediakan fungsi `atob()` untuk decode Base64, tetapi hanya mendukung charset Latin-1 (ISO-8859-1). Untuk memproses karakter multibyte, Anda perlu mengonversi byte UTF-8 lebih dulu dengan `TextDecoder('utf-8')`. Alat ini menangani detail tersebut secara otomatis dan mendukung decode UTF-8 tanpa langkah manual.
**Privasi dengan proses lokal:** semua operasi decode dilakukan di dalam browser. String Base64 yang Anda masukkan tidak diunggah ke server mana pun, sehingga aman untuk mendekode token sensitif pada respons API atau data pengguna di log.
Kasus penggunaan
- Mendekode field Base64 dari respons API untuk melihat isi aslinya
- Memulihkan data Base64 di dalam log
- Mengembalikan nilai Base64 pada file konfigurasi
- Menganalisis penyebab error decode Base64 seperti padding hilang atau karakter tidak valid
- Mendekode header dan payload JWT untuk melihat informasi pengguna
- Mendekode kredensial HTTP Basic Authentication untuk melihat username dan password
- Memulihkan data gambar atau resource dari Data URI Scheme
Cara Penggunaan
- Tempel string Base64 yang ingin didekode
- Pilih charset (UTF-8/ASCII/ISO-8859-1)
- Alat akan otomatis mendekode Base64 dan menampilkan hasilnya
- Salin hasil decode untuk debugging atau dokumentasi lanjutan
Fitur
- Konversi dua arah real-time: input langsung didekode dengan debounce 300 ms tanpa perlu klik manual
- Dukungan banyak charset: UTF-8, ASCII, dan ISO-8859-1 untuk skenario Indonesia, Inggris, dan multibahasa
- Kompatibel dengan URL-safe Base64: otomatis menangani penggantian `-` dan `_`, termasuk format tanpa padding
- Deteksi karakter tidak valid: saat decode gagal, posisi error ditunjukkan agar masalah format cepat ditemukan
- Salin dan unduh sekali klik: hasil decode bisa disalin ke clipboard atau diunduh sebagai file teks `.txt`
- Penanganan padding otomatis: karakter `=` ditambahkan atau dihapus secara otomatis tanpa perlu penyesuaian manual
- Dukungan varian MIME: mengenali dan memproses format Base64 MIME dengan line break tiap 76 karakter
Contoh Kode
JavaScript: decode dengan `atob()` bawaan browser (hanya Latin-1)
javascriptGunakan API bawaan browser untuk mendekode Base64 teks Inggris biasa. Untuk UTF-8, gunakan `TextDecoder`.
// Standard Base64 decode (plain English / Latin-1)
function b64Decode(str) {
try {
return atob(str);
} catch (e) {
return 'Decode failed: ' + e.message;
}
}
console.log(b64Decode('SGVsbG8gV29ybGQ=')); // "Hello World"
// UTF-8 decode (recommended)
function b64DecodeUtf8(str) {
const binary = atob(str);
const bytes = new Uint8Array(binary.length);
for (let i = 0; i < binary.length; i++) {
bytes[i] = binary.charCodeAt(i);
}
return new TextDecoder('utf-8').decode(bytes);
}
console.log(b64DecodeUtf8('5LiW55WM')); // UTF-8 textPython: decode dengan library `base64` (termasuk URL-Safe)
pythonLibrary standar `base64` di Python mendukung mode Standard dan URL-Safe.
import base64
# Standard decode
encoded = 'SGVsbG8g5LiW55WM'
decoded = base64.b64decode(encoded).decode('utf-8')
print(decoded)
# URL-Safe decode
url_encoded = 'SGVsbG8g5LiW55WM'
decoded = base64.urlsafe_b64decode(url_encoded + '=' * (4 - len(url_encoded) % 4))
print(decoded.decode('utf-8'))
# MIME decode (after removing line breaks)
mime_encoded = 'SGVs\nbG8g\nV29y\nbGQ='
decoded = base64.b64decode(mime_encoded.replace('\n', '')).decode('utf-8')
print(decoded)
# Ignore invalid characters automatically
import re
cleaned = re.sub(r'[^A-Za-z0-9+/=]', '', encoded)
decoded = base64.b64decode(cleaned).decode('utf-8')
print(decoded)Java: decode dengan `java.util.Base64` (berbagai varian)
javaLibrary standar Java memberi dukungan lengkap untuk Base64 RFC 4648, URL-Safe, dan MIME.
import java.nio.charset.StandardCharsets;
import java.util.Base64;
public class Base64DecodeExample {
public static void main(String[] args) {
String encoded = "SGVsbG8g5LiW55WM";
// Standard decode
byte[] decoded = Base64.getDecoder().decode(encoded);
System.out.println(new String(decoded, StandardCharsets.UTF_8));
// URL-Safe decode
byte[] urlDecoded = Base64.getUrlDecoder().decode(encoded);
System.out.println(new String(urlDecoded, StandardCharsets.UTF_8));
// MIME decode (handles line breaks automatically)
String mime = "SGVs\nbG8g\nV29y\nbGQ=";
byte[] mimeDecoded = Base64.getMimeDecoder().decode(mime);
System.out.println(new String(mimeDecoded, StandardCharsets.UTF_8));
// Error handling
try {
Base64.getDecoder().decode("invalid@base64");
} catch (IllegalArgumentException e) {
System.err.println("Decode failed: " + e.getMessage());
}
}
}Pertanyaan Umum
Mengapa saat decode Base64 muncul InvalidCharacterError?
Penyebab umum meliputi spasi, newline, atau tanda kutip yang ikut tercampur, jumlah Padding (`=`) yang salah, atau penggunaan varian URL-safe (`-/_` menggantikan `+/`). Bersihkan string Base64 terlebih dulu sebelum mendekode.
Apa yang harus dilakukan jika hasil decode menjadi karakter acak?
Kemungkinan charset yang dipilih salah. Jika teks aslinya memakai karakter multibyte, pilih UTF-8. Untuk teks Inggris murni atau data biner, coba ASCII atau ISO-8859-1.
Apa perbedaan decode URL-safe Base64 dan Base64 biasa?
URL-safe Base64 memakai `-` dan `_` sebagai pengganti `+` dan `/`, serta biasanya menghilangkan Padding `=` di akhir. Sebelum didekode, `-/_` perlu dikembalikan ke `+/` lalu padding dilengkapi.
Apakah decode Base64 cocok untuk integrasi API?
Sangat cocok. Banyak respons API, token OAuth, parameter callback, dan log middleware membungkus isi datanya dalam Base64. Setelah didekode, data asli bisa dilihat langsung.
Bagaimana cara mendekode header atau payload JWT?
JWT menggunakan Base64URL (varian URL-safe). Tempel segmen pertama (header) atau kedua (payload) JWT lalu pilih mode URL-safe. Segmen ketiga adalah signature dan tidak seharusnya diverifikasi lewat decode biasa.
Apakah alat ini mendukung file besar?
Tidak ada batas ukuran eksplisit, tetapi performa browser bisa turun untuk teks yang sangat besar. Decode string Base64 di atas 10 MB dapat membuat halaman lambat atau macet, jadi lebih baik gunakan decode bertahap atau script Node.js / Python.
Bagaimana jika padding hilang?
Alat akan otomatis menambahkan Padding (`=`) hingga panjang string menjadi kelipatan 4. Karena varian URL-safe sering menghilangkan padding, alat ini akan mengenali dan melengkapinya secara cerdas.
Apakah decode Base64 sama dengan dekripsi?
Bukan. Base64 adalah encoding yang bisa dibalik, bukan enkripsi. Siapa pun dapat mendekode Base64. Jika datanya sensitif, gunakan skema enkripsi nyata seperti AES.
Apakah hasil `atob()` browser sama dengan alat ini?
Untuk teks Inggris murni, biasanya sama. Namun `atob()` hanya mendukung Latin-1 dan tidak dapat langsung memproses teks UTF-8 multibyte. Alat ini setara dengan gabungan `atob()` dan `TextDecoder`.
Bisakah hasil decode diekspor?
Bisa. Anda dapat menyalinnya ke clipboard dengan satu klik atau mengunduhnya sebagai file `.txt`. File yang diunduh memakai encoding UTF-8 dan bisa dibuka di editor teks atau Excel.
Glosarium
- Base64
- Metode encoding biner ke teks berbasis 64 karakter ASCII yang dapat dicetak, didefinisikan dalam RFC 4648. Setiap 3 byte diubah menjadi 4 karakter sehingga ukuran naik sekitar 33%.
- atob()
- Fungsi decode Base64 bawaan browser (ASCII to Binary). Hanya mendukung charset Latin-1; untuk teks UTF-8 perlu dikombinasikan dengan TextDecoder.
- Padding
- Encoding Base64 menambahkan karakter `=` di akhir agar panjangnya menjadi kelipatan 4. Saat decode, padding biasanya ditangani otomatis. Varian URL-safe sering menghilangkan padding.
- URL-Safe Base64
- Varian aman untuk URL yang didefinisikan dalam RFC 4648 §5, menggunakan `-` dan `_` sebagai pengganti `+` dan `/`. Umum dipakai untuk JWT dan OAuth PKCE.
- MIME Base64
- Varian Base64 menurut RFC 2045 yang menambahkan line break CRLF setiap 76 karakter. Biasanya dipakai untuk lampiran email.
- UTF-8
- Encoding Unicode dengan panjang variabel. Karakter multibyte seperti bahasa Tionghoa perlu dipulihkan dengan memilih UTF-8 saat decode Base64.
- InvalidCharacterError
- Error yang dilempar browser `atob()` ketika input mengandung karakter non-Base64 seperti spasi, newline, atau karakter asing.
- Latin-1 (ISO-8859-1)
- Charset single-byte untuk bahasa Eropa Barat. `atob` dan `btoa` bawaan browser hanya mendukung charset ini dan tidak dapat memproses UTF-8 secara langsung.
Perbandingan 3 varian Base64
Sebelum decode, identifikasi dulu jenis varian Base64 pada input lalu pilih mode yang sesuai agar terhindar dari error atau output rusak.
| Fitur | Standard | URL-Safe | MIME |
|---|---|---|---|
| Karakter khusus | + / | - _ | + / |
| Padding (=) | Dipakai | Biasanya dihilangkan | Dipakai |
| Line break | Tidak ada | Tidak ada | Line break tiap 76 karakter |
| Standar | RFC 4648 §4 | RFC 4648 §5 | RFC 2045 |
| Skenario umum | Data URI, encoding umum | JWT, parameter URL, nama file | Lampiran email, transmisi SMTP |
| Perhatian saat decode | Pastikan Padding lengkap | Ganti dulu -_ menjadi +/ lalu decode | Hapus line break sebelum decode |
5 error umum saat decode Base64
Jika muncul error saat decode, gunakan tabel ini untuk mencari penyebabnya dengan cepat.
| Jenis error | Kemungkinan penyebab | Solusi |
|---|---|---|
| InvalidCharacterError | Mengandung spasi, newline, atau karakter non-Base64 | Bersihkan string input atau gunakan alat Base64 Clean |
| Teks rusak setelah decode | Charset yang dipilih salah, misalnya teks UTF-8 dibaca sebagai Latin-1 | Ganti ke UTF-8 |
| Error pada parameter URL | Karakter URL-safe (`-_`) didekode sebagai Base64 standar | Ganti `-_` menjadi `+/` lebih dulu |
| Padding salah | Panjang string bukan kelipatan 4 | Tambahkan `=` sampai panjang % 4 = 0 |
| String kosong | Input hanya berisi whitespace atau newline | Hapus whitespace lalu masukkan ulang |
Authoritative References
- 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