Skip to content

Decode & Encode Base64 Online — Konversi Instan di Browser

Decode dan encode Base64 online gratis. Konversi real-time dengan dukungan UTF-8 dan emoji. 100% privat di browser Anda. Tanpa pendaftaran.

Tanpa Pelacakan Berjalan di Browser Gratis
Teks
Base64
Ditinjau untuk kepatuhan RFC 4648 dan kebenaran UTF-8 — Go Tools Engineering Team · Mar 22, 2026

Apa Itu Base64?

Base64 adalah skema encoding biner-ke-teks yang didefinisikan oleh RFC 4648 yang mengonversi data biner arbitrer menjadi representasi string ASCII yang aman menggunakan alfabet 64 karakter. Ini adalah salah satu encoding yang paling banyak digunakan di internet, menjadi fondasi dari lampiran email hingga JSON Web Token dan sertifikat TLS.

"The Base 64 encoding is designed to represent arbitrary sequences of octets in a form that need not be humanly readable." — RFC 4648, Section 1

Base64 membagi input menjadi grup 3 byte (24 bit), lalu memecah 24 bit tersebut menjadi empat grup 6-bit, masing-masing dipetakan ke salah satu dari 64 karakter yang dapat dicetak: A-Z (0-25), a-z (26-51), 0-9 (52-61), + (62), dan / (63). Karakter = digunakan untuk padding saat panjang input bukan kelipatan 3. Encoding Base64 meningkatkan ukuran data sekitar 33% (RFC 4648) — trade-off yang disengaja untuk membuat data biner aman bagi saluran khusus teks.

Base64 awalnya dirancang untuk mentransmisikan data biner secara aman melalui saluran yang hanya mendukung teks, seperti email (MIME) dan HTTP awal. Saat ini ia ada di mana-mana: data URI menyematkan gambar di HTML, token JWT meng-encode klaim, sertifikat PEM membungkus kunci, dan API mentransportasikan payload biner dalam JSON.

Base64 encoder mengonversi byte mentah ke representasi ASCII yang aman ini, sementara decoder membalikkan prosesnya. Semua encoding dan decoding di alat ini berjalan sepenuhnya di browser Anda — data Anda tidak pernah diunggah ke server mana pun, menjadikannya aman digunakan dengan API key, token, dan nilai sensitif lainnya.

Gunakan konverter Base64 online gratis ini untuk mendekode Base64 ke teks atau meng-encode teks ke Base64 secara instan di browser Anda.

Base64 sering digunakan bersama alat encoding dan data lainnya. Misalnya, Anda mungkin perlu memformat data JSON sebelum meng-encode Base64 untuk payload API, meng-encode URL string Base64 sebelum menempatkannya di parameter query, atau memverifikasi checksum file dengan MD5 atau SHA-256 setelah mendekode unduhan ber-encode Base64. Baru mengenal Base64? Baca panduan Base64 untuk pemula kami. Untuk topik lanjutan seperti MIME, data URL, dan optimasi performa, lihat panduan Base64 lengkap.

// Encode plain text to Base64
const encoded = btoa('Hello, World!');
console.log(encoded); // → 'SGVsbG8sIFdvcmxkIQ=='

// Decode Base64 back to text
const decoded = atob('SGVsbG8sIFdvcmxkIQ==');
console.log(decoded); // → 'Hello, World!'

// UTF-8 safe encode (handles Chinese, emoji, any Unicode)
function encodeBase64(str) {
  const bytes = new TextEncoder().encode(str);  // to UTF-8 bytes
  return btoa(String.fromCharCode(...bytes));
}
console.log(encodeBase64('你好')); // → '5L2g5aW9'

Fitur Utama

Konversi Real-Time

Encode dan decode secara instan saat Anda mengetik — tanpa tombol yang perlu diklik, hasil langsung muncul di area lainnya.

Dukungan Penuh UTF-8

Menangani teks Tionghoa, Jepang, Korea, Arab, emoji, dan Unicode apa pun dengan benar melalui TextEncoder/TextDecoder.

Dua Arah

Ketik di area mana pun: teks biasa di kiri di-encode ke Base64 di kanan, Base64 di kanan di-decode ke teks di kiri.

100% Berbasis Browser

Semua pemrosesan terjadi secara lokal di browser Anda. Data Anda tidak pernah meninggalkan perangkat — tanpa unggahan ke server, tanpa pelacakan.

Deteksi Error

Input Base64 yang tidak valid terdeteksi langsung dengan pesan error yang jelas, sehingga Anda tahu persis apa yang perlu diperbaiki.

Salin Sekali Klik

Salin hasil yang di-encode atau di-decode ke clipboard Anda secara instan dengan tombol Salin di setiap sisi.

Contoh

Teks Biasa

Hello, World!
SGVsbG8sIFdvcmxkIQ==

Teks ASCII sederhana yang di-encode ke Base64

Teks UTF-8

你好世界 🌍
5L2g5aW95LiW55WMIPCfjI0=

Karakter Tionghoa dan emoji dengan encoding UTF-8 yang tepat

Data JSON

{"user":"alice","role":"admin"}
eyJ1c2VyIjoiYWxpY2UiLCJyb2xlIjoiYWRtaW4ifQ==

Encode payload JSON untuk disematkan di URL atau header

Teks Multi-baris

Line 1
Line 2
Line 3
TGluZSAxCkxpbmUgMgpMaW5lIDM=

Base64 mempertahankan jeda baris dan spasi

Cara Menggunakan

  1. 1

    Masukkan Teks atau Base64

    Ketik atau tempel teks biasa di area kiri untuk meng-encode, atau tempel string Base64 di area kanan untuk mendekode. Konversi instan dan dua arah.

  2. 2

    Lihat Hasil Real-Time

    Area lainnya diperbarui secara otomatis saat Anda mengetik. Error apa pun (seperti Base64 tidak valid) ditampilkan langsung.

  3. 3

    Salin Hasilnya

    Klik tombol Salin di kedua sisi untuk menyalin hasil yang di-encode atau di-decode ke clipboard Anda.

Kasus Penggunaan Umum

Pembuatan Data URI
Encode gambar atau file ke Base64 untuk disematkan langsung di HTML atau CSS sebagai data URI.
Debugging JWT
Decode header dan payload token JWT ber-encode Base64 untuk memeriksa klaim dan waktu kedaluwarsa.
Pengembangan API
Encode data biner untuk transmisi di API JSON, atau decode respons Base64 untuk inspeksi.
Encoding Email
Encode atau decode konten email dan lampiran ber-encode MIME.
Inspeksi Sertifikat
Decode sertifikat dan kunci ber-encode PEM untuk memeriksa konten binernya.
Penyematan Konfigurasi
Encode data konfigurasi atau secret untuk disematkan secara aman di variabel lingkungan atau file konfigurasi.

Detail Teknis

Sesuai RFC 4648
Mengimplementasikan encoding Base64 standar seperti didefinisikan dalam RFC 4648, menggunakan alfabet A-Z, a-z, 0-9, +, / dengan padding =.
UTF-8 Melalui TextEncoder
Menggunakan Web API TextEncoder untuk mengonversi string Unicode ke byte UTF-8 sebelum encoding, memastikan penanganan yang benar untuk semua skrip dan emoji.
Pemrosesan Berbasis Browser
Semua encoding menggunakan btoa()/atob() bawaan dengan TextEncoder/TextDecoder — tanpa library eksternal, tanpa panggilan server.

Praktik Terbaik

Jangan Gunakan Base64 untuk Keamanan
Base64 adalah encoding, bukan enkripsi. Jangan pernah menggunakannya untuk 'melindungi' kata sandi, token, atau data sensitif — selalu gunakan enkripsi yang tepat.
Perhatikan Peningkatan Ukuran
Base64 menambah overhead ~33%. Untuk file besar, pertimbangkan transfer biner daripada encoding Base64.
Gunakan Encoding UTF-8
Selalu encode teks ke byte UTF-8 sebelum encoding Base64 untuk memastikan karakter non-ASCII (Tionghoa, emoji) ditangani dengan benar.

Pertanyaan yang Sering Diajukan

Apa itu encoding Base64?
Base64 adalah skema encoding biner-ke-teks yang merepresentasikan data biner sebagai string karakter ASCII yang dapat dicetak. Ia mengonversi setiap 3 byte input menjadi 4 karakter ASCII dari set A-Z, a-z, 0-9, +, dan /. Karakter '=' digunakan untuk padding saat panjang input bukan kelipatan 3. Base64 didefinisikan dalam RFC 4648 dan banyak digunakan dalam email (MIME), data URI, JSON Web Token (JWT), dan autentikasi HTTP.
Apakah data saya aman saat menggunakan alat ini?
Ya, sepenuhnya aman. Semua proses encoding dan decoding terjadi secara lokal di browser Anda menggunakan API bawaan JavaScript yaitu btoa(), atob(), TextEncoder, dan TextDecoder. Data Anda tidak pernah meninggalkan perangkat — tidak ada request ke server, tidak ada cookie, tidak ada analitik pada input Anda, dan tidak ada penyimpanan data apa pun.
Bagaimana alat ini menangani karakter non-ASCII seperti huruf Tionghoa atau emoji?
Alat ini terlebih dahulu mengonversi teks input ke byte UTF-8 menggunakan TextEncoder API, kemudian meng-encode byte tersebut ke Base64. Ini memastikan karakter di luar rentang ASCII — termasuk huruf Tionghoa (你好), Jepang (こんにちは), Arab, dan emoji (🎉) — di-encode dengan benar. Saat decoding, alat ini membalikkan prosesnya: Base64 → byte → teks UTF-8 menggunakan TextDecoder.
Apakah Base64 itu enkripsi?
Tidak. Base64 adalah encoding, bukan enkripsi. Ia tidak memberikan keamanan apa pun — siapa pun dapat mendekode string Base64 kembali ke data asli secara instan. Base64 dirancang untuk transportasi data (membuat data biner aman untuk saluran khusus teks), bukan untuk melindungi rahasia. Jika Anda perlu melindungi data, gunakan enkripsi yang tepat (AES, RSA) sebelum opsional meng-encode hasilnya ke Base64.
Di mana Base64 biasa digunakan?
Base64 digunakan secara luas dalam: (1) Data URI — menyematkan gambar langsung di HTML/CSS sebagai 'data:image/png;base64,...', (2) Email — encoding MIME untuk lampiran dan konten non-ASCII, (3) JWT — JSON Web Token meng-encode header dan payload sebagai Base64URL, (4) HTTP Basic Auth — kredensial dikirim sebagai 'username:password' yang di-encode Base64, (5) API — mentransmisikan data biner dalam payload JSON, (6) Sertifikat — format PEM membungkus sertifikat DER-encoded dalam Base64.
Apa perbedaan antara Base64 dan Base64 yang aman untuk URL?
Base64 standar menggunakan karakter '+' dan '/', yang memiliki arti khusus di URL — + mewakili spasi dan / adalah pemisah path. Base64 yang aman untuk URL (juga didefinisikan dalam RFC 4648) mengganti '+' dengan '-' dan '/' dengan '_', membuat output aman untuk digunakan di URL dan nama file tanpa percent encoding tambahan. Jika Anda perlu menggunakan Base64 standar di URL, Anda dapat meng-encode persen dengan URL Encoder kami. Alat ini menggunakan Base64 standar. Untuk mengonversi ke versi aman URL, cukup ganti + dengan - dan / dengan _ pada output.
Mengapa Base64 meningkatkan ukuran data?
Base64 meng-encode 3 byte input menjadi 4 karakter output, menghasilkan peningkatan ukuran sekitar 33%. Ini karena Base64 hanya menggunakan 64 karakter ASCII yang dapat dicetak (6 bit masing-masing) untuk merepresentasikan byte 8-bit. Misalnya, string 13 karakter 'Hello, World!' menjadi string Base64 20 karakter 'SGVsbG8sIFdvcmxkIQ=='. Trade-off ini dapat diterima karena data yang di-encode aman untuk ditransmisikan melalui protokol khusus teks.
Bagaimana cara meng-encode file ke Base64?
Di macOS atau Linux, gunakan command line: base64 < myfile.png > myfile.b64. Di Windows, gunakan PowerShell: [Convert]::ToBase64String([IO.File]::ReadAllBytes('myfile.png')). Di JavaScript (Node.js), gunakan fs.readFileSync('myfile.png').toString('base64'). Di Python, gunakan import base64; base64.b64encode(open('myfile.png','rb').read()). Alat browser ini menangani input teks; untuk file biner besar, alat command-line lebih efisien.
Bisakah saya menggunakan Base64 di HTML dan CSS?
Ya. Base64 umum digunakan di data URI untuk menyematkan aset kecil langsung di HTML atau CSS, menghilangkan request HTTP tambahan. Di HTML: . Di CSS: background-image: url('data:image/svg+xml;base64,PHN2Zy...'). Ini ideal untuk ikon kecil dan SVG (di bawah ~5 KB). Untuk file lebih besar, referensi file terpisah lebih efisien karena Base64 menambah overhead ukuran 33% dan melewati caching browser.
Berapa ukuran input maksimum?
Alat berbasis browser ini menangani teks hingga sekitar 5 MB secara efisien. Untuk file yang sangat besar atau data biner, pertimbangkan menggunakan alat command-line seperti 'base64' (tersedia di macOS dan Linux) atau 'openssl base64'. Standar Base64 sendiri tidak memiliki batas ukuran.
Karakter apa saja yang ada di alfabet Base64?
Alfabet Base64 standar (RFC 4648) terdiri dari 64 karakter: huruf besar A-Z (nilai 0-25), huruf kecil a-z (nilai 26-51), angka 0-9 (nilai 52-61), tanda tambah + (nilai 62), dan garis miring / (nilai 63). Tanda sama dengan = digunakan untuk padding. Varian aman URL (Base64URL) mengganti + dengan - dan / dengan _ untuk menghindari konflik dengan karakter URL yang direservasi.
Saya perlu menyematkan gambar kecil di template email HTML — haruskah saya menggunakan data URI Base64 atau meng-host gambar secara eksternal?
Untuk email HTML, data URI Base64 sebenarnya adalah pendekatan yang direkomendasikan untuk gambar kecil seperti logo dan ikon. Banyak klien email (Outlook, Gmail) secara agresif memblokir gambar yang di-host secara eksternal secara default, mengharuskan pengguna mengklik "Tampilkan gambar" untuk melihatnya. Menyematkan gambar sebagai data URI Base64 (data:image/png;base64,...) menghindari masalah ini sepenuhnya — gambar menjadi bagian dari email itu sendiri. Trade-off-nya adalah ukuran file email: Base64 menambah ~33% overhead, sehingga PNG 10 KB menjadi ~13 KB di email. Usahakan gambar yang disematkan di bawah 20 KB untuk kompatibilitas terbaik. Untuk gambar yang lebih besar atau latar belakang, hosting eksternal lebih praktis. Gunakan alat ini untuk meng-encode byte file gambar Anda ke Base64 untuk disematkan.
Mengapa string Base64 yang saya encode memiliki karakter + dan / yang merusak parameter URL saya?
Base64 standar menggunakan + dan / sebagai dua dari 64 karakternya, dan keduanya memiliki arti khusus di URL (+ berarti spasi, / adalah pemisah path). Saat Anda menyertakan string Base64 standar di parameter query URL tanpa encoding, karakter-karakter ini merusak nilainya. Solusinya adalah menggunakan Base64 aman URL (juga disebut Base64URL, didefinisikan dalam RFC 4648), yang mengganti + dengan - dan / dengan _. Varian ini digunakan di token JWT, alur OAuth, dan nilai Base64 apa pun yang muncul di URL. Untuk mengonversi Base64 standar ke versi aman URL, cukup ganti semua + dengan - dan / dengan _ di output, dan opsional hapus karakter padding =.
Saya mencoba mendekode token JWT — bagaimana cara kerja decoding Base64URL dan apa bedanya dengan Base64 standar?
JWT (JSON Web Token) terdiri dari tiga bagian yang dipisahkan titik: header.payload.signature. Header dan payload masing-masing di-encode dengan Base64URL — bukan Base64 standar. Base64URL berbeda dari Base64 standar dalam dua hal: ia menggunakan - alih-alih + dan _ alih-alih /, serta menghilangkan karakter padding =. Untuk mendekode JWT secara manual, pisahkan token berdasarkan titik, ambil segmen pertama atau kedua, ganti - dengan + dan _ dengan /, tambahkan padding = jika perlu agar panjangnya kelipatan 4, lalu decode Base64. Kebanyakan debugging JWT lebih mudah dengan decoder JWT khusus, tetapi memahami encoding Base64URL membantu saat mengimplementasikan penanganan token di kode atau debugging nilai token mentah.