Encoder & Decoder Base64
Encode teks ke Base64 atau decode Base64 kembali ke teks. Sadar UTF-8, mendukung karakter di luar ASCII.
- Tempel teks atau string Base64 ke dalam kotak.
- Klik Encode untuk mengubah teks menjadi Base64, atau Decode untuk mengubah Base64 kembali menjadi teks.
- Centang Aman-URL jika nilainya masuk ke URL atau JWT — menggunakan - dan _ serta menghilangkan padding.
- Klik Salin untuk menempatkan hasilnya ke clipboard.
Apa fungsinya?
Base64 mengenkode byte arbitrer sebagai 64 karakter ASCII yang dapat dicetak, sehingga transport yang tidak aman untuk biner (string JSON, URL, isi email, variabel lingkungan, HTTP Basic auth) dapat membawanya tanpa rusak. Alat ini menangani input UTF-8 dengan benar — pertama mengenkode string Anda ke byte UTF-8, kemudian mengenkode byte tersebut ke Base64, sehingga karakter non-ASCII bolak-balik dengan bersih. Output sekitar 33% lebih besar dari input (setiap 3 byte menjadi 4 karakter).
Contoh
Mengenkode teks "Hello, world!":
SGVsbG8sIHdvcmxkIQ== Mengenkode teks yang sama dengan Aman-URL aktif (padding dihapus):
SGVsbG8sIHdvcmxkIQ Mengenkode teks emoji "café ☕":
Y2Fmw6kg4piV Mengapa string Base64 saya tidak terdekode?
- Ketidakcocokan standard vs Aman-URL. String dengan - atau _ adalah base64url, bukan standard Base64. Alihkan kotak centang Aman-URL agar cocok.
- Padding hilang. Panjang string standard Base64 harus kelipatan 4. SGVsbG8 gagal; SGVsbG8= berhasil. Tambahkan = sampai panjangnya habis dibagi 4.
- Spasi dan baris baru di dalam nilai. Beberapa sistem membungkus Base64 pada 76 karakter dengan \n. Sebagian besar decoder menoleransi ini, tetapi yang lebih ketat tidak. Hapus spasi sebelum mendekode.
- Tidak sengaja didekode dua kali. Mendekode U0dWc2JHOA== menghasilkan SGVsbG8, yang merupakan string Base64 sendiri. Jika output Anda terlihat seperti Base64 lagi, dekode lagi.
- Data biner non-UTF-8. Jika byte yang didekode bukan UTF-8 yang valid (mis. header PNG), mendekode sebagai teks akan gagal atau menampilkan sampah. Gunakan alat Base64 yang menyadari file untuk biner.
- Tanda kutip pintar atau elipsis yang terlihat. Menyalin dari pengolah kata bisa mengganti " dengan tanda kutip keriting atau memangkas string panjang dengan elipsis. Tempel melalui editor teks biasa terlebih dahulu.
Pertanyaan yang sering diajukan
Apa perbedaan antara standard Base64 dan Base64 Aman-URL?
Standard Base64 (RFC 4648) menggunakan + dan / serta memadatkan dengan =. Base64 Aman-URL (base64url) mengganti + dengan - dan / dengan _ serta biasanya menghilangkan padding sehingga string bertahan sebagai path URL atau parameter query tanpa perubahan. JWT menggunakan base64url. Pilih kotak centang Aman-URL saat output menuju URL.
Apakah alat ini menangani emoji dan teks non-ASCII dengan benar?
Ya. Input pertama dienkode sebagai byte UTF-8, kemudian byte tersebut dienkode ke Base64. Decoding membalikkan kedua langkah. Itulah sebabnya menempel "café" dan mendekode hasilnya mengembalikan "café", bukan mojibake. Banyak alat Base64 lama mengasumsikan Latin-1 dan merusak apa pun di luar ASCII.
Bisakah saya mengenkode file biner seperti gambar atau PDF?
Halaman ini hanya mengenkode teks. Untuk mengenkode file ke Base64, letakkan file ke alat yang membacanya sebagai biner (atau gunakan konsol browser dengan FileReader.readAsDataURL). Alat ini untuk mengenkode string — kasus penggunaan tipikal saat menyematkan kredensial, konfigurasi, atau field JSON.
Mengapa output yang didekode terlihat seperti sampah?
Biasanya input bukan Base64 sejak awal, atau itu adalah Base64 Aman-URL yang didekode sebagai standard (atau sebaliknya). Coba alihkan kotak centang Aman-URL. Penyebab umum lainnya adalah mendekode string yang sebenarnya adalah biner yang dienkode Base64, bukan teks — dalam hal ini byte bukan UTF-8 yang valid.
Apakah padding = itu penting?
Standard Base64 memadatkan output agar panjangnya kelipatan 4. Sebagian besar decoder menerima input tanpa padding, tetapi beberapa yang ketat menolaknya. Base64 Aman-URL biasanya menghilangkan padding. Jika decoder mengeluh, tambahkan tanda = sampai panjangnya habis dibagi 4, atau hapus semuanya dan coba lagi.
Apakah Anda menyimpan teks yang saya encode atau decode?
Tidak. Kami tidak menyimpan teks yang Anda tempel di sini. Input Anda dibuang saat Anda menutup atau menyegarkan halaman — tidak ada yang disimpan, dan tidak ada catatan tentang apa yang Anda encode atau decode. Jika Anda ingin lapisan kepercayaan ekstra, Anda bisa memeriksa developer tools browser Anda.