Skip to content
Enkode / Dekode Base64
Tools

Enkode / Dekode Base64

Konversi teks dan berkas ke dan dari Base64 dengan satu klik.

0 bytes
0 bytes

Files & images

Runs entirely in your browser. Nothing is uploaded.

Toolkit Base64 lengkap yang tidak pernah meninggalkan browser Anda

Base64 mengubah data biner menjadi teks ASCII biasa agar dapat melewati sistem yang dirancang untuk teks dengan aman — isi email, payload JSON, URL, HTML, dan CSS. Alat ini melakukan encode dan decode Base64 untuk teks maupun file, dan berbeda dari kebanyakan situs Base64 populer, alat ini berjalan sepenuhnya di perangkat Anda. Apa pun yang Anda tempel atau seret tidak pernah diunggah ke server mana pun — hal yang sangat penting ketika data tersebut adalah access token, API key, atau informasi lain yang tidak ingin Anda serahkan ke server pihak ketiga.

Alat ini dibangun untuk menangani kasus-kasus yang sering salah pada alat sederhana: dukungan penuh Unicode (termasuk emoji dan aksara non-Latin), Base64URL yang aman untuk URL, pembungkusan baris ala MIME dan PEM, serta decoding teks yang aslinya dikodekan dengan character set selain UTF-8. Anda bahkan bisa memutus koneksi internet setelah halaman termuat — semuanya tetap berfungsi, dan itulah bukti nyata bahwa data Anda tidak pernah dikirim ke mana-mana.

Decode apa saja — dengan kontrol charset dan parser yang toleran

Base64 hasil tempel sering kali berantakan: terpotong baris karena pembungkusan email, kehilangan padding = di terminal, atau datang sebagai URI data: lengkap. Decoder ini membersihkan semuanya secara otomatis — menghapus spasi dan baris baru, menerima karakter URL-safe, memulihkan padding, dan membuka data URI. Jika ada karakter yang benar-benar tidak valid, alat ini menunjukkan karakter dan posisinya secara tepat, bukan sekadar gagal tanpa penjelasan.

Karena Base64 menyimpan byte mentah tanpa label character set, teks hasil decode bisa tampak kacau jika aslinya bukan UTF-8. Selektor Decode as memungkinkan Anda menafsirkan ulang byte yang sama sebagai UTF-16 (big-endian maupun little-endian), Latin-1 (ISO-8859-1), Windows-1252, ASCII, Shift_JIS (Jepang), atau GBK (Tionghoa Sederhana) sampai teksnya terbaca dengan benar. Ini sangat berguna untuk string Base64 yang berasal dari sistem lama, klien email, atau perangkat lunak Asia Timur yang memakai encoding regional. Beralihlah ke tampilan Hex untuk memeriksa byte mentah secara langsung ketika Anda sedang melakukan debug payload biner.

File dan gambar, dengan pratinjau serta snippet siap tempel

Seret file, klik untuk memilih, atau cukup tempel gambar dari clipboard Anda. Gambar dipratinjau langsung, dan alat ini mendeteksi tipe file dari magic bytes-nya — sehingga blob hasil decode dikenali dengan benar sebagai PNG, JPEG, GIF, WebP, PDF, dan lainnya, lalu dapat diunduh dengan ekstensi yang tepat.

Untuk menyematkan aset, encode sebuah gambar dan salin data URI yang sudah jadi, aturan background-image CSS, tag <img>, atau tag <link> favicon — tanpa perlu merangkai string data URI secara manual. Inilah yang dibutuhkan developer saat menyisipkan favicon, logo email, atau sprite ikon ke dalam satu halaman tunggal. Dalam mode Decode, alat ini membaca tipe MIME dari prefiks data URI atau mendeteksinya dari byte mentah, menampilkan pratinjau gambar, dan memulihkan file asli lengkap dengan ekstensinya.

Mengapa alat ini lebih unggul dari alat Base64 gratis lainnya

Banyak alat Base64 gratis — termasuk situs populer seperti base64decode.org dan base64encode.org — memproses input Anda di sisi server. Artinya, token JWT, API key, dan isi file pribadi Anda dikirim ke server jarak jauh yang tidak Anda kendalikan. Alat Base64 milik UtiloKit berjalan 100% dalam JavaScript di browser Anda. Anda bahkan bisa memutus internet setelah halaman termuat dan semuanya tetap bekerja sempurna.

CyberChef memang hebat tetapi kurva belajarnya curam untuk tugas encoding sederhana. base64.guru menangani teks dengan baik tetapi mengunggah file ke servernya. TinyWow memberlakukan batas harian bagi pengguna gratis, dan Smallpdf membatasi 2 tugas per hari. UtiloKit menawarkan pembungkusan baris MIME untuk kompatibilitas email, format PEM untuk sertifikat, decoding sadar charset untuk teks internasional, dukungan Base64URL untuk token JWT dan OAuth, serta deteksi tipe file untuk biner hasil decode — semuanya gratis, tanpa batas, dan privat. Tidak perlu email, tidak perlu kartu kredit, tidak ada apa pun.

Alat ini juga sepenuhnya responsif dan berjalan di setiap perangkat dengan browser modern. Di iPhone dan Android, Anda bisa menempel teks dari clipboard, memilih file dari aplikasi Files atau galeri kamera, dan mengunduh hasilnya — tanpa memasang aplikasi apa pun. Antarmukanya dioptimalkan untuk layar kecil mulai lebar 375px, dan karena semuanya berjalan offline setelah termuat, alat ini tetap bekerja di dalam VPN, dalam mode pesawat, atau di perangkat dengan akses jaringan terbatas.

Cara kerja encoding Base64: algoritma langkah demi langkah

Base64 bekerja dengan mengelompokkan byte input ke dalam potongan tiga byte dan mengubah setiap potongan menjadi empat karakter yang dapat dicetak. Pertama, byte mentah dibentangkan sebagai aliran bit berkesinambungan. Setiap 6 bit dari aliran itu dipetakan ke sebuah indeks dalam alfabet 64 karakter: huruf besar A–Z (indeks 0–25), huruf kecil a–z (26–51), angka 0–9 (52–61), + (62), dan / (63). Karena 6 bit dapat mewakili 64 nilai dan 8 bit mewakili 256, meng-encode tiga byte 8-bit (24 bit) selalu menghasilkan tepat empat kelompok 6-bit (juga 24 bit) — yaitu empat karakter. Rasio konversi tetap 3-ke-4 inilah alasan mengapa output Base64 selalu sekitar 33% lebih besar daripada inputnya.

Contoh konkret membuat algoritma ini mudah dipahami. Meng-encode kata Man dimulai dari nilai ASCII-nya: M = 77, a = 97, n = 110. Dalam biner: 01001101 01100001 01101110. Dibentangkan sebagai 24 bit lalu dibagi menjadi empat kelompok 6-bit: 010011 (19 → T), 010110 (22 → W), 000101 (5 → F), 101110 (46 → u) — menghasilkan string Base64 TWFu. Jika total panjang input bukan kelipatan 3, kelompok terakhir diisi bit nol hingga mencapai batas 6-bit penuh, dan satu atau dua karakter padding = ditambahkan sebagai penanda. Satu = berarti kelompok input terakhir berisi 2 byte; dua == berarti hanya 1 byte.

Decoding membalik proses itu secara persis: setiap karakter dicari di alfabet untuk mendapatkan indeks 6-bitnya, keempat kelompok digabung menjadi 24 bit, lalu dipecah kembali menjadi tiga byte. Karakter padding dibuang. Karena pemetaannya hanyalah tabel lookup sederhana tanpa kunci dan tanpa state, decoding berlangsung seketika — tidak ada rahasia untuk ditemukan dan tidak ada komputasi yang perlu dibongkar paksa. Inilah mengapa Base64 memberikan kerahasiaan nol dan tidak boleh disamakan dengan enkripsi.

Mengapa Base64 diciptakan: SMTP, MIME, dan masalah ASCII 7-bit

Kebutuhan akan Base64 berakar pada keputusan yang dibuat ketika internet masih muda. SMTP, protokol email, dirancang pada awal 1980-an untuk teks ASCII 7-bit. Server email meneruskan pesan melalui simpul relay yang menghapus bit ke-8 dari setiap byte — praktik warisan jaringan telegraf. File biner, gambar, dan teks non-Inggris yang memakai nilai byte di atas 127 rusak diam-diam selama transit. Mengirim foto atau file program lewat email dengan byte mentah pada masa itu benar-benar mustahil.

MIME (Multipurpose Internet Mail Extensions), yang distandardisasi dalam RFC 2045 pada 1992, memecahkan masalah ini dengan mendefinisikan sejumlah content-transfer encoding yang membuat data biner aman melewati infrastruktur khusus ASCII. Base64 ditetapkan sebagai encoding MIME untuk biner arbitrer karena setiap byte diubah menjadi karakter dalam rentang ASCII 7-bit yang aman. Masalah mendasar yang sama — kanal berorientasi teks yang tidak dapat membawa byte sembarang secara andal — muncul berulang di seluruh tumpukan web: header HTTP tidak boleh berisi byte mentah, cookie dibatasi pada subset ASCII, JSON dan XML adalah format teks yang akan rusak oleh byte NUL, dan atribut HTML tidak boleh berisi tanda kurung siku atau tanda kutip tanpa escape. Base64 menjadi jawaban universal untuk semua batasan tersebut.

Saat ini SMTP sebagian besar sudah 8-bit clean dan banyak server email mendukung ekstensi 8BITMIME, tetapi encoding Base64 pada lampiran tetap bertahan karena standar MIME sudah tertanam dalam pada setiap klien dan server email yang pernah ditulis. Encoding yang memperbaiki email era 1980-an kini terjalin ke dalam JWT, data URI, kunci SSH, sertifikat TLS, HTTP Basic Auth, dan puluhan standar modern lainnya — semuanya karena kebutuhan keamanan 7-bit yang sama terus muncul kembali dalam konteks baru.

Varian Base64 — dan mengapa Base64 bukan enkripsi

Tidak ada Base64 tunggal — ada beberapa varian yang berkerabat dekat, berbeda pada dua karakter alfabetnya serta cara menangani jeda baris dan padding. Base64 standar (RFC 4648 §4) memakai + dan / sebagai karakter ke-62 dan ke-63 serta mewajibkan padding =; inilah varian untuk lampiran email MIME, sertifikat PEM, dan sebagian besar pustaka encoding. Base64 URL-safe (RFC 4648 §5, disebut juga Base64url) mengganti + dengan - dan / dengan _, karena + berarti spasi dalam query string URL dan / adalah pemisah path. Base64url adalah varian yang diwajibkan oleh spesifikasi JWT (RFC 7519) dan OAuth 2.0 PKCE; JWT bahkan membuang padding = seluruhnya karena panjang segmen bisa disimpulkan dari strukturnya, dan padding dalam URL harus di-percent-encode sebagai %3D. MIME Base64 (RFC 2045) adalah Base64 standar dengan jeda baris wajib setiap 76 karakter menggunakan CRLF, sedangkan PEM memakai panjang baris 64 karakter dengan header seperti -----BEGIN CERTIFICATE-----. Decoder yang tangguh — seperti pada alat ini — menormalkan semua varian secara otomatis.

Base64 hadir di lebih banyak tempat daripada yang disadari kebanyakan developer. JWT (JSON Web Tokens) meng-encode header dan payload-nya sebagai Base64url — tempel JWT apa pun ke decoder dan Anda langsung dapat membaca klaimnya (ID pengguna, peran, masa berlaku). Signature-nya mencegah manipulasi, tetapi payload-nya tidak terenkripsi. HTTP Basic Authentication meng-encode username:password sebagai Base64 di header Authorization — hanya aman melalui HTTPS. Data URI menyematkan isi file langsung ke HTML atau CSS, kunci publik SSH di ~/.ssh/authorized_keys adalah struktur DER ber-Base64, dan sertifikat X.509 dalam format PEM adalah Base64 dengan baris header dan footer.

Miskonsepsi terpenting tentang Base64 adalah anggapan bahwa ia memberikan keamanan. Tidak sama sekali. Base64 adalah encoding yang dapat dibalik dengan algoritma publik yang tetap dan tanpa kunci — decoding hanyalah operasi tabel lookup yang bisa diimplementasikan siapa pun dalam sepuluh baris kode. Menyamarkan password atau API key dengan Base64 memberikan perlindungan tepat nol; pemindai otomatis rutin men-decode string Base64 di kode sumber dan file konfigurasi sebagai bagian dari serangan pencurian kredensial. Jika data harus rahasia, enkripsilah dengan AES atau cipher serupa terlebih dahulu, baru (jika perlu) encode ciphertext-nya sebagai Base64 untuk transport. Enkripsilah yang memberikan keamanan; Base64 hanya menyediakan transport ASCII yang aman.

Frequently asked questions

Apa itu Base64 dan untuk apa digunakan?

Base64 adalah skema encoding yang merepresentasikan data biner — file, gambar, atau byte apa pun — hanya dengan 64 karakter ASCII yang dapat dicetak (A–Z, a–z, 0–9, +, /). Base64 digunakan untuk memindahkan data biner secara aman melalui kanal khusus teks: menyematkan gambar di HTML, CSS, atau email, menyimpan biner di dalam JSON atau XML, meng-encode segmen header dan payload JWT, serta meneruskan nilai di query string. Ia menyelesaikan masalah sistem yang menghapus, mengubah, atau merusak byte mentah dengan mengonversi semuanya menjadi teks ASCII biasa yang selamat selama transportasi tanpa perubahan.

Apakah Base64 itu enkripsi — apakah aman?

Tidak. Base64 adalah encoding, bukan enkripsi atau hashing — tidak memakai kunci dan siapa pun dapat men-decode-nya seketika dengan decoder Base64 apa pun, termasuk alat ini. Ia tidak memberikan kerahasiaan sama sekali dan tidak boleh dipakai untuk melindungi password, API key, atau data pribadi. Base64 adalah encoding transport, bukan langkah keamanan. Jika Anda perlu melindungi data sensitif, enkripsilah terlebih dahulu (AES, RSA, dsb.) lalu, jika perlu, encode ciphertext-nya dengan Base64 untuk transport yang aman — tetapi yang melindungi adalah enkripsinya, bukan encoding-nya.

Apakah encoder dan decoder Base64 ini gratis?

Ya, sepenuhnya gratis tanpa perlu mendaftar dan tanpa batas panjang teks atau ukuran file. TinyWow membatasi pengguna gratis pada segelintir konversi harian, Smallpdf membatasi 2 tugas per hari, dan banyak situs mensyaratkan akun untuk membuka fitur penuh. Alat Base64 UtiloKit tidak punya batas harian, tidak butuh akun, dan tidak ada paywall — gratis untuk setiap operasi encode dan decode yang pernah Anda butuhkan. Tanpa alamat email, tanpa kartu kredit, tanpa apa pun.

Apakah aman meng-encode data sensitif di sini?

Ya. Semua diproses di browser Anda — teks, file, dan gambar tidak pernah diunggah ke server — sehingga konten sensitif seperti token atau kredensial tetap berada di perangkat Anda. Banyak situs Base64 populer mengunggah input Anda ke server mereka; alat ini tidak pernah. Anda bisa membuktikannya dengan meng-encode saat offline: tetap berfungsi.

Mengapa Base64 diakhiri satu atau dua tanda =?

Karakter = adalah padding. Base64 meng-encode input dalam kelompok 3 byte yang masing-masing menjadi 4 karakter; ketika kelompok terakhir kurang penuh, tanda = mengisi output hingga panjangnya kelipatan 4. Satu = berarti kelompok terakhir berisi 2 byte, dua tanda = berarti berisi 1 byte. Padding tidak membawa data, sehingga alat ini memulihkan = yang hilang secara otomatis saat decoding.

Karakter apa saja yang diizinkan dalam Base64?

Base64 standar memakai A–Z, a–z, 0–9, ditambah simbol + dan /, dengan = untuk padding — total 65 karakter. Selain itu (spasi, jeda baris, tanda baca lain) bukan bagian dari alfabetnya. Varian URL-safe mengganti + dan / dengan - dan _. Decoder ini tetap mentoleransi spasi, baris baru, dan karakter URL-safe, serta memberi tahu posisi persis setiap karakter yang tidak dapat diterimanya.

Apa kekurangan Base64?

Base64 membuat data kira-kira 33% lebih besar karena setiap 3 byte menjadi 4 karakter — overhead itu cepat menumpuk pada respons HTTP, file HTML, atau bundel CSS di mana ukuran payload memengaruhi performa. Ia tidak mudah dibaca manusia, sehingga review kode dan debugging jadi lebih sulit saat string Base64 muncul di kode sumber. Ia tidak menyediakan deteksi kesalahan atau checksum, sehingga satu karakter yang rusak diam-diam menghasilkan output yang salah. Dan ia tidak memberikan kerahasiaan sama sekali — siapa pun yang melihat string-nya dapat men-decode dalam hitungan detik. Base64 pilihan tepat untuk memindahkan biner lewat kanal teks, tetapi bukan kompresi dan bukan keamanan. Untuk payload besar, gunakan transfer biner dengan header Content-Type yang tepat.

Apakah Base64 sama dengan UTF-8?

Tidak — keduanya menyelesaikan masalah yang benar-benar berbeda. UTF-8 adalah character encoding yang mengubah teks yang dibaca manusia (huruf, emoji, simbol) menjadi byte. Base64 kemudian mengambil byte apa pun — termasuk byte UTF-8 — dan mengubahnya menjadi karakter ASCII biasa yang aman untuk transport teks. Keduanya berlapis: untuk meng-encode string Unicode ke Base64, Anda mengubahnya dulu menjadi byte UTF-8, lalu meng-encode byte itu sebagai Base64. Melewatkan langkah UTF-8 adalah bug paling umum pada alat Base64 yang naif — mereka bekerja pada representasi UTF-16 internal JavaScript, menghasilkan output kacau untuk apa pun di luar ASCII dasar. Alat ini selalu mengonversi teks Unicode ke UTF-8 terlebih dahulu, sehingga emoji dan semua aksara non-Latin ter-encode dan ter-decode dengan benar.

Apakah Base64 termasuk bahasa pemrograman?

Bukan. Base64 adalah skema encoding data, bukan bahasa pemrograman atau markup — tidak ada yang dijalankan, dikompilasi, atau diinterpretasi. Ia hanyalah algoritma reversibel yang mengubah data biner arbitrer menjadi himpunan tetap 64 karakter ASCII dan sebaliknya. Anda memakainya sebagai langkah transformasi di dalam program yang ditulis dalam bahasa apa pun (JavaScript, Python, Go, Java, dsb.), tetapi Base64 sendiri bukan bahasa. Anggaplah seperti notasi heksadesimal — format representasi, bukan bahasa.

Apa itu Base64URL dan kapan sebaiknya dipakai?

Base64URL adalah varian yang aman untuk URL dan nama file: karakter + diganti - dan karakter / diganti _, serta karakter padding = dibuang seluruhnya. Ini penting karena + dan / standar punya makna khusus dalam URL — keduanya akan salah tafsir atau di-percent-encode oleh browser dan server. Gunakan Base64URL untuk segmen header dan payload JWT, token OAuth, parameter query string, dan nama file yang membutuhkan string aman dan mudah dibaca. Aktifkan mode URL-safe di alat ini dan ia meng-encode serta men-decode Base64 standar maupun Base64URL secara otomatis, dengan penanganan padding di keduanya.

Bisakah saya mengonversi file dan gambar ke Base64?

Bisa. Seret atau tempel file maupun gambar apa pun untuk mendapatkan string Base64 atau data URI-nya, lengkap dengan pratinjau inline untuk tipe gambar. Alat ini menghasilkan snippet siap tempel untuk aturan background-image CSS, atribut src pada img HTML, dan tag link favicon, sehingga Anda tidak perlu merangkai string data URI secara manual. Dalam mode Decode, ia membaca tipe MIME dari prefiks data URI atau mendeteksi tipe file dari byte mentah (magic bytes), menampilkan pratinjau gambar, dan memungkinkan Anda mengunduh file asli dengan ekstensi yang benar. Mendukung PNG, JPG, SVG, WebP, GIF, PDF, dan lainnya.

Apakah Unicode dan emoji ditangani dengan benar?

Ya. Encoding-nya aman untuk Unicode dengan UTF-8, sehingga karakter beraksen, huruf Arab, Tionghoa, Jepang, Korea, dan emoji semuanya berputar bolak-balik tanpa kerusakan. Inilah kegagalan paling umum pada alat Base64 yang naif: mereka bekerja pada representasi string UTF-16 internal JavaScript alih-alih mengonversi dulu ke byte UTF-8 yang benar, sehingga output kacau untuk apa pun di luar ASCII dasar. Alat ini mengonversi ke UTF-8 terlebih dahulu, sehingga setiap karakter ter-encode dan ter-decode akurat apa pun aksara atau bahasanya.

Teks hasil decode saya tampak kacau — bisakah diperbaiki?

Bisa. Base64 tidak membawa informasi charset, sehingga teks yang aslinya di-encode dengan charset non-UTF-8 bisa tampak kacau saat di-decode sebagai UTF-8. Gunakan selektor 'Decode as' untuk menafsirkan ulang byte yang sama sebagai UTF-16 (big-endian maupun little-endian), Latin-1 (ISO-8859-1), Windows-1252, ASCII, Shift_JIS (Jepang), atau GBK (Tionghoa Sederhana) sampai teksnya terbaca benar. Ini paling relevan untuk string Base64 yang berasal dari sistem lama, klien email, atau perangkat lunak Asia Timur yang memakai encoding regional alih-alih UTF-8.

Kenapa Base64 saya tidak bisa di-decode — katanya tidak valid?

Mulailah dari penyebab paling umum: spasi atau baris baru berlebih (decoder ini menghapusnya otomatis), karakter URL-safe seperti - dan _ alih-alih + dan / (juga ditangani otomatis), dan padding = yang hilang di akhir (dipulihkan otomatis). Jika string masih gagal, kemungkinan ada karakter di luar alfabet Base64 — spasi, tanda persen, karakter Unicode, atau entitas HTML yang nyasar. Decoder memberi tahu persis karakter mana yang tidak valid beserta posisinya sehingga Anda dapat menemukan dan memperbaikinya. Salin ulang string mentah dari sumbernya, karena copy-paste kadang menyisipkan karakter Unicode tak terlihat atau smart quotes yang tampak benar padahal bukan Base64.

Bagaimana dibandingkan alat Base64 lain seperti TinyWow atau it-tools?

TinyWow dan Smallpdf pada dasarnya adalah alat PDF/gambar yang mengunggah file ke server mereka. Alat Base64 di it-tools.tech solid tetapi merupakan aplikasi self-hosted. Perbedaan kuncinya: di sini encoding dan decoding terjadi sepenuhnya di browser Anda — data Anda tidak pernah dikirim ke mana pun. Selain itu, alat ini menangani pemilihan charset, pembungkusan baris MIME, pratinjau file, dan Base64 URL-safe dalam satu tempat, tanpa memerlukan akun apa pun.