KeroTools

Enkoder dan Dekoder Base64

Enkode teks apa pun ke Base64 atau dekode kembali secara instan di browser — alat gratis untuk developer.

Masukan
0 karakter
Keluaran

Teks Anda tetap di perangkat

Tidak ada yang perlu dihapus kemudian

Dibangun untuk membongkar kredensial

Jalan di semua browser modern

Cara kerjanya

  1. 1

    Tempel teks Anda

    Teks biasa untuk dikodekan, atau string Base64 untuk dibongkar.

  2. 2

    Pilih arah dan alfabetnya

    Mengodekan atau membongkar, standar atau aman untuk URL, tergantung ke mana hasilnya pergi.

  3. 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

AspekAlat iniPembongkar daringBaris perintah
Konten dikirim ke serverTidak pernahUmumnya yaTidak
Alfabet aman untuk URLYaBeragamPerlu sebuah flag
UTF-8 ditangani dengan benarYaBeragamYa
Perlu penyiapanTidak adaTidak adaSebuah terminal
Akun atau pendaftaranTidak perluSering dimintaTidak perlu
HargaGratisGratis / paket berbayarGratis

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.