Enkoder dan Dekoder Base64
Enkode teks apa pun ke Base64 atau dekode kembali secara instan di browser — alat gratis untuk developer.
Teks Anda tetap di perangkat
Tidak ada yang perlu dihapus kemudian
Dibangun untuk membongkar kredensial
Jalan di semua browser modern
Cara kerjanya
- 1
Tempel teks Anda
Teks biasa untuk dikodekan, atau string Base64 untuk dibongkar.
- 2
Pilih arah dan alfabetnya
Mengodekan atau membongkar, standar atau aman untuk URL, tergantung ke mana hasilnya pergi.
- 3
Salin hasilnya
Bawa ke sebuah header, data URI, nilai konfigurasi, atau sebuah permintaan.
Mengapa memakai alat ini
Kedua alfabet
Base64 standar dan varian yang aman untuk URL, agar token yang harus selamat melewati query string benar-benar selamat.
Padding tertangani dua arah
Masukan dengan atau tanpa `=` di ujung tetap terbongkar, dan Anda memilih apa yang dibawa keluarannya.
UTF-8 dikerjakan dengan benar
Arab, Turki, dan emoji pergi dan kembali utuh alih-alih terbongkar menjadi karakter pengganti.
Seketika di kedua arah
Mengodekan dan membongkar di tempat yang sama, tanpa berganti alat di tengah sesi penelusuran galat.
Tidak ada yang diunggah
Konversinya terjadi di browser Anda — token yang Anda tempel tak pernah sampai ke server.
Gratis tanpa akun
Tanpa pendaftaran, tanpa watermark, dan tanpa batas seberapa banyak yang Anda konversi.
Base64 bukan enkripsi, dan memperlakukannya begitu adalah kerentanan yang nyata
Inilah hal terpenting yang perlu dipahami tentang format ini, dan ia terus-menerus disalahpahami. Base64 tak punya kunci, tak punya rahasia, dan tak punya sifat keamanan apa pun. Ia adalah pemetaan publik yang dapat dibalik dan bisa dibatalkan siapa pun dalam satu langkah — persis yang dilakukan halaman ini. Namun Base64 rutin muncul sebagai pengganti perlindungan: kata sandi yang disimpan terkode Base64 di sebuah basis data, kunci API yang “disamarkan” di sebuah berkas konfigurasi, data pribadi yang dikodekan di sebuah cookie agar “tidak kelihatan seperti apa-apa”. Tak satu pun dari itu tersembunyi. Ia hanya ditulis dalam alfabet lain, dan siapa pun atau pemindai mana pun yang menemukannya membacanya seketika. Kalau tujuannya adalah agar seseorang tak bisa membaca sebuah nilai, Anda memerlukan enkripsi atau hashing, dan Base64 bukan keduanya.
Untuk apa ia sebenarnya: melewatkan bita melalui kanal yang hanya menerima teks
Base64 memecahkan sebuah masalah yang spesifik dan tak menarik. Banyak sistem hanya menerima teks yang dapat dicetak: badan surel, bidang string JSON, header HTTP, dokumen XML, URL. Serahkan kepada salah satunya data biner mentah — sebuah gambar, arsip terkompresi, kunci enkripsi — dan sesuatu di jalurnya akan merusaknya, karena bita yang kebetulan tampak seperti karakter kendali atau akhir baris ditulis ulang saat transit. Base64 mengelak dari ini dengan menyatakan ulang bita sembarang memakai 64 karakter yang disepakati semua sistem untuk dibiarkan apa adanya. Itulah sebabnya lampiran surel berupa Base64 di dalam pesannya, sebuah gambar sebaris di CSS berupa `data:` URI, dan sertifikat biner diserahkan sebagai blok PEM. Formatnya adalah pembungkus transport, bukan format penyimpanan dan bukan langkah keamanan.
Ia memakan sepertiga bita lebih banyak, dan kadang itu penting
Aritmetikanya tetap: tiap tiga bita masukan menjadi empat karakter keluaran, jadi data terkode kira-kira 33 persen lebih besar daripada yang masuk, sebelum padding. Sebagian besar waktu ini tak relevan. Ia berhenti tak relevan ketika orang menyisipkan gambar sebagai `data:` URI di CSS atau HTML demi menghemat satu permintaan HTTP. Gambar 90 KB menjadi 120 KB karakter, dan tak seperti berkas gambar sungguhan ia tak bisa disimpan cache terpisah, tak bisa dimuat malas, dan ia memblokir stylesheet yang memuatnya. Untuk ikon kecil itu pertukaran yang adil. Untuk sebuah foto itu biasanya kesalahan yang muncul belakangan sebagai lukisan pertama yang lambat. Kalau Anda mengodekan sesuatu untuk disisipkan, periksa apa yang terjadi pada ukurannya sebelum berkomitmen.
Alfabet aman-URL ada karena tiga karakter merusak URL
Base64 standar memakai `+`, `/`, dan `=`, dan ketiganya berarti hal lain di dalam URL. Tanda plus terbaca sebagai spasi di query string, garis miring adalah pemisah jalur, dan tanda sama dengan memisahkan sebuah parameter dari nilainya. Kirim token terkode standar lewat URL dan ia tiba rusak, sering dengan cara yang hanya muncul untuk sebagian masukan — itulah sebabnya “berhasil di klien API saya tapi patah di browser” begitu sering dilaporkan. Varian aman-URL memperbaiki ini dengan mengganti `+` menjadi `-` dan `/` menjadi `_`, dan biasanya membuang padding seluruhnya. JWT memakainya, begitu pula sebagian besar format token modern. Kedua alfabet itu tidak saling menggantikan: membongkar string aman-URL dengan pembongkar standar yang ketat akan gagal, jadi cocokkan variannya dengan tempat nilai itu bepergian.
Apa yang dikerjakan tanda sama dengan di ujung
Padding adalah bagian yang semua orang perhatikan dan tak seorang pun yakin tentangnya. Karena pengodean bekerja pada kelompok tiga bita, masukan yang panjangnya bukan kelipatan tiga meninggalkan kelompok separuh, dan karakter `=` mengganjal keluarannya hingga kelipatan empat. Satu tanda sama dengan berarti masukannya berakhir dengan dua bita sisa; dua berarti ia berakhir dengan satu. Hanya itu yang mereka bawa — mereka petunjuk panjang, bukan data. Dalam praktiknya para pembongkar berselisih soal apakah keduanya wajib: sebagian menolak mentah-mentah masukan tanpa padding, sebagian menerimanya, dan konvensi aman-URL biasanya menghilangkannya karena `=` merepotkan di dalam URL. Kalau sebuah nilai gagal dibongkar di tempat lain dan tampak baik-baik saja di sini, ketidakcocokan harapan padding layak diperiksa sebelum apa pun yang lebih eksotis.
Kenapa membongkar secara lokal lebih penting di sini daripada hampir di mana pun
Lihat apa yang orang benar-benar tempel ke pembongkar Base64. Itu sebuah header `Authorization: Basic`, yang memuat nama pengguna dan kata sandi dipisahkan titik dua. Itu separuh muatan sebuah JWT, yang membawa pengenal pengguna dan sering sebuah alamat surel. Itu sebuah string koneksi, kunci API, cookie sesi, sertifikat. Seluruh alasan seseorang meraih pembongkar adalah karena ia memegang nilai yang tak bisa ia baca, dan nilai yang tak bisa Anda baca secara luar biasa sering merupakan kredensial. Menempelkan itu ke pembongkar yang dihosting menyerahkan sebuah rahasia yang masih berfungsi kepada pihak ketiga, lewat kanal yang tak meninggalkan jejak. Alat ini mengonversi di dalam halaman dan tak mengirimkan apa pun, yang bisa Anda pastikan di tab Network pada developer tools — dan untuk format yang satu ini, itu bukan kemewahan.
Kesalahan umum yang sebaiknya dihindari
- Memakai Base64 untuk menyembunyikan sesuatu. Tak ada kunci dan tak ada rahasia — siapa pun membongkarnya dalam satu langkah; kalau sebuah nilai tak boleh terbaca, ia butuh enkripsi atau hashing, bukan alfabet yang berbeda.
- Mengirim nilai terkode standar lewat URL. Karakter `+`, `/`, dan `=` semuanya berarti hal lain di sana; pakai alfabet aman-URL atau nilainya tiba rusak untuk sebagian masukan dan tidak untuk sebagian lain.
- Menyisipkan gambar besar sebagai `data:` URI. Pengodean menambah sekitar sepertiga pada ukurannya, dan hasilnya tak bisa disimpan cache terpisah atau dimuat malas — pas untuk ikon kecil, mahal untuk sebuah foto.
- Menganggap padding opsional di mana-mana. Sebagian pembongkar mewajibkan `=` di ujung, sebagian menolaknya; kalau sebuah nilai terbongkar di sini dan gagal di tempat lain, periksa harapan padding sebelum mencari sebab yang eksotis.
- Menempelkan header Authorization atau JWT ke pembongkar yang dihosting. Nilai-nilai itu kredensial hidup, dan penempelannya tak meninggalkan jejak bahwa Anda mengirimnya; bongkarlah secara lokal.
Perbandingan
| Aspek | Alat ini | Pembongkar daring | Baris perintah |
|---|---|---|---|
| Konten dikirim ke server | Tidak pernah | Umumnya ya | Tidak |
| Alfabet aman untuk URL | Ya | Beragam | Perlu sebuah flag |
| UTF-8 ditangani dengan benar | Ya | Beragam | Ya |
| Perlu penyiapan | Tidak ada | Tidak ada | Sebuah terminal |
| Akun atau pendaftaran | Tidak perlu | Sering diminta | Tidak perlu |
| Harga | Gratis | Gratis / paket berbayar | Gratis |
Fitur
Mengodekan dan membongkar
Kedua arah dalam satu tempat, dengan masukan dan keluaran berdampingan.
Varian aman untuk URL
Alfabet `-` dan `_` yang dipakai JWT dan segala yang bepergian di dalam URL.
Padding opsional
Keluarkan atau kupas karakter `=` di ujung agar cocok dengan yang diharapkan sistem penerima.
Dukungan Unicode penuh
Teksnya dikodekan sebagai UTF-8 lebih dulu, jadi aksara non-Latin selamat dalam perjalanan.
Mampu menangani masukan besar
String panjang terkonversi tanpa unggahan maupun plafon ukuran.
Masukan tak sah ditandai
String yang bukan Base64 sah akan mengatakannya, alih-alih mengembalikan omong kosong secara diam.
Tanpa instalasi
Tanpa baris perintah, tanpa runtime, tanpa dependensi — jalan di halaman web.
Ramah Arab dan RTL
Antarmuka lengkap dalam delapan bahasa, termasuk Arab kanan-ke-kiri.
Aman secara bawaan
Disajikan lewat HTTPS, tanpa pelacakan konten dan tanpa unggahan ke pihak ketiga.
Siapa yang memakainya
Pengembang
Membaca header autentikasi atau muatan token saat menelusuri galat, tanpa menyerahkannya ke pihak ketiga.
Insinyur keamanan
Memeriksa nilai terkode yang ditemukan di sebuah log, cookie, atau berkas konfigurasi.
Integrator API
Menyusun atau memeriksa header Basic auth sebelum mengirimkan permintaan dengannya.
Pengembang front-end
Menghasilkan `data:` URI untuk aset sebaris kecil dan melihat berapa ongkosnya dalam ukuran.
Pertanyaan yang Sering Diajukan
Tidak. Semuanya berjalan lokal di browser Anda — teks Anda tidak pernah diunggah, disimpan, atau dibagikan.
Ya — sepenuhnya gratis, tanpa akun dan tanpa batas.