Pengubah Kode Base64 - Alat Konversi Base64 Gratis Online
Alat pengubah kode base64 gratis. Ubah teks ke Base64 atau dekode string Base64 secara instan. Mendukung pengkodean standar dan URL-aman. Tidak perlu login.
Pengubah/Penerjemah Base64
Ubah teks ke dan dari pengkodean Base64
Dokumentasi
Apa itu pengodean Base64?
Base64 adalah cara mengubah data apa pun, termasuk data biner seperti gambar, menjadi teks biasa yang hanya terdiri atas huruf, angka, dan beberapa simbol. Enkoder base64 mengubah data menjadi bentuk teks ini. Dekoder base64 mengubahnya kembali menjadi data asli. Program menggunakan Base64 untuk memindahkan data biner dengan aman melalui sistem seperti email atau JSON yang mengharapkan teks biasa.
Base64 menggunakan alfabet yang terdiri atas 64 karakter:
- Huruf kapital AโZ (26 karakter)
- Huruf kecil aโz (26 karakter)
- Angka 0โ9 (10 karakter)
- Dua simbol, biasanya
+dan/(2 karakter)
Beberapa sistem juga menggunakan tanda sama dengan (=) di akhir keluaran sebagai padding. Padding bukan bagian dari alfabet yang terdiri atas 64 karakter; padding hanya melengkapi panjangnya.
Mengapa Base64 ada
Banyak protokol teks lama, termasuk email (SMTP) dan beberapa bagian HTTP, dibuat untuk membawa teks ASCII 7 bit. Protokol tersebut dapat merusak byte biner mentah, seperti byte di dalam gambar JPEG. Base64 menghindari hal ini dengan merepresentasikan setiap byte hanya menggunakan karakter yang aman dan dapat dicetak. Karena itu, lampiran email, gambar yang disematkan di halaman web, dan bidang biner di dalam JSON umumnya terlebih dahulu diproses melalui Base64.
Base64 bukan kompresi dan bukan enkripsi. Keluaran yang dikodekan selalu lebih besar daripada masukan, dan siapa pun dapat mendekodenya tanpa kata sandi atau kunci.
Cara menggunakan alat ini
- Ketik atau tempelkan teks ke dalam kotak input.
- Pilih "Encode to Base64" untuk mengubah teks menjadi Base64, atau "Decode from Base64" untuk mengubah string Base64 kembali menjadi teks.
- Aktifkan konversi langsung agar keluaran diperbarui secara otomatis saat mengetik.
- Salin hasilnya dengan tombol salin.
Alat ini membaca dan menulis teks Unicode standar, sehingga huruf beraksen, simbol, dan emoji dapat dikodekan dan didekodekan dengan benar, bukan hanya huruf bahasa Inggris biasa.
Cara kerja pengodean Base64
Base64 mengubah setiap 3 byte masukan (24 bit) menjadi 4 karakter keluaran (masing-masing memuat 6 bit), karena 24 dibagi 6 sama dengan 4.
- Ambil byte masukan dan tuliskan dalam bentuk biner.
- Kelompokkan bit menjadi potongan-potongan berukuran 24 bit (3 byte).
- Bagi setiap potongan berukuran 24 bit menjadi empat bagian berukuran 6 bit.
- Cari setiap bilangan 6 bit (dari 0 hingga 63) dalam alfabet Base64, lalu tuliskan karakter yang sesuai.
Jika panjang masukan bukan kelipatan 3, potongan terakhir berukuran lebih pendek. Encoder menambahkan bit nol sebagai padding, kemudian menambahkan karakter = ke keluaran agar hasilnya tetap tersusun dalam kelompok berukuran 4:
- Satu byte tersisa menghasilkan 2 karakter Base64 ditambah
==. - Dua byte tersisa menghasilkan 3 karakter Base64 ditambah satu
=.
Contoh pengodean Base64
Pengodean kata "Hello":
- Nilai ASCII: 72, 101, 108, 108, 111
- Biner:
01001000 01100101 01101100 01101100 01101111 - 3 byte pertama (24 bit) dibagi menjadi empat kelompok berukuran 6 bit:
010010 000110 010101 101100, yang merupakan bilangan 18, 6, 21, 44 โ karakterS,G,V,s. - 2 byte yang tersisa (16 bit) dibagi menjadi tiga kelompok berukuran 6 bit, dengan penambahan 2 bit nol di bagian akhir:
011011 000110 111100, yang merupakan bilangan 27, 6, 60 โ karakterb,G,8. - Karena masih tersisa 2 byte, satu
=ditambahkan di bagian akhir. - Hasil:
SGVsbG8=
Pendekodean membalik langkah-langkah ini: setiap karakter dipetakan kembali ke bilangan 6 bitnya, bit-bit digabungkan menjadi aliran, lalu aliran tersebut dibaca kembali dalam byte berukuran 8 bit.
Rumus panjang hasil pengodean Base64
Untuk masukan berukuran n byte, panjang hasil pengodean dalam karakter adalah:
encoded_length = 4 ร โn / 3โ
dengan โxโ berarti membulatkan ke atas ke bilangan bulat terdekat. Rumus ini menunjukkan mengapa keluaran Base64 selalu sekitar sepertiga lebih besar daripada masukan: 4 karakter keluaran untuk setiap 3 byte masukan berarti peningkatan sebesar 33%.
Penggunaan Base64
- Lampiran email (MIME). Email dibuat untuk teks, sehingga lampiran berkas diubah menjadi Base64 sebelum dikirim, yang membuat berkas terlampir sekitar 33% lebih besar daripada aslinya.
- URI data. Gambar kecil dapat disematkan langsung di dalam HTML atau CSS sebagai teks, misalnya
data:image/png;base64,iVBORw0KGgo..., sehingga tidak memerlukan permintaan berkas terpisah. Cara ini paling sesuai untuk berkas kecil, karena berkas besar memperbesar halaman dan tidak dapat disimpan dalam cache secara terpisah. - API dan JSON. JSON tidak memiliki cara bawaan untuk menyimpan data biner mentah, sehingga berkas biner yang dikirim melalui API JSON sering kali terlebih dahulu dikodekan dengan Base64.
- Autentikasi Dasar HTTP. Header
Authorizationmengodekan nama pengguna dan kata sandi sebagai Base64, misalnyaAuthorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=. Cara ini tidak aman jika digunakan sendirian; kredensial dapat dibaca oleh siapa pun yang mencegatnya, sehingga Autentikasi Dasar hanya boleh digunakan melalui HTTPS. - JSON Web Token (JWT). Masing-masing dari tiga bagian JWT dikodekan dengan Base64URL, varian yang aman untuk ditempatkan di dalam URL.
- Menyimpan data biner sebagai teks. Basis data atau berkas konfigurasi yang hanya menerima teks terkadang menyimpan data biner sebagai string Base64.
Base64 dibandingkan dengan pengodean lain
Base64 yang aman untuk URL mengganti karakter standar + dan / dengan - dan _, karena + dan / memiliki makna khusus di dalam URL. Varian ini digunakan untuk JWT, parameter kueri URL, dan nama berkas. Alat ini menghasilkan keluaran Base64 standar; untuk mengubahnya menjadi bentuk yang aman untuk URL, cukup tukar kedua karakter tersebut.
Base32 menggunakan alfabet yang terdiri atas 32 karakter, sehingga setiap karakter membawa 5 bit, bukan 6 bit. Pengodean ini mengubah setiap 5 byte menjadi 8 karakter, dengan overhead 60% (8 รท 5 = 1,6), dibandingkan dengan 33% pada Base64. Base32 dipilih ketika keluaran harus diketik secara manual atau dibaca melalui telepon, karena menghindari huruf besar-kecil campuran dan karakter yang mudah tertukar.
Heksadesimal menggunakan 16 karakter (0โ9, AโF) dan memerlukan 2 karakter per byte, sehingga ukurannya menjadi dua kali lipat (overhead 100%). Heksadesimal umum digunakan untuk menampilkan hash, warna, dan alamat MAC, ketika keterbacaan lebih penting daripada ukuran yang ringkas.
Kapan Base64 tidak digunakan
Base64 menambah ukuran dan beban CPU, sehingga kurang sesuai untuk berkas besar yang dikirim melalui jaringan; mengirim data biner mentah secara langsung lebih kecil dan lebih cepat. Pengodean ini tidak boleh diandalkan untuk menyembunyikan informasi sensitif seperti kata sandi atau kunci API, karena pendekodeannya tidak memerlukan rahasia. Untuk menyimpan berkas besar, tipe kolom biner pada basis data atau layanan penyimpanan berkas biasanya lebih baik daripada string Base64 panjang di bidang teks.
Kesalahan umum
- Melewati konversi UTF-8. Pengodean teks yang berisi huruf beraksen atau emoji tanpa terlebih dahulu mengubahnya menjadi byte UTF-8 dapat merusak keluaran.
- Menghapus padding. Beberapa sistem menghapus karakter
=di bagian akhir. Sebagian besar decoder tetap dapat bekerja jika panjang string dikembalikan dengan padding hingga menjadi kelipatan 4, tetapi tidak semuanya menerimanya, sehingga padding sebaiknya dipertahankan. - Jeda baris yang tersisa. Enkoder berbasis MIME yang lebih lama menyisipkan jeda baris setiap 76 karakter; sebagian besar dekoder modern mengharapkan satu string berkelanjutan tanpa jeda tersebut.
- Mencampuradukkan varian. Base64 standar dan Base64 yang aman untuk URL menggunakan karakter berbeda pada dua posisi yang sama dalam alfabet; pendekodean dengan varian yang salah menghasilkan data yang tidak bermakna atau kesalahan.
Pertanyaan yang sering diajukan
Apakah Base64 merupakan bentuk enkripsi? Tidak. Ini adalah pengodean teks yang dapat dibalik, bukan enkripsi. Siapa pun dapat mendekode string Base64 secara langsung tanpa kata sandi. Gunakan algoritme enkripsi seperti AES jika data perlu tetap rahasia.
Mengapa Base64 membuat data lebih besar? Karena pengodean ini menggunakan satu karakter penuh untuk membawa hanya 6 bit, sedangkan satu byte mentah memuat 8 bit. Mengubah 3 byte (24 bit) menjadi 4 karakter berarti keluaran berukuran 4/3, atau sekitar 33%, lebih besar daripada masukan.
Apakah Base64 dapat mengodekan gambar dan berkas biner lainnya? Ya. Berkas biner apa pun, termasuk gambar, PDF, dan audio, dapat dikodekan dengan Base64 dan didekodekan kembali byte demi byte. Pengodean ini umum digunakan untuk gambar kecil yang disematkan di HTML atau CSS, tetapi kurang sesuai untuk berkas besar.
Apa perbedaan antara Base64 dan Base64URL?
Base64URL menukar karakter standar + dan / dengan - dan _, sehingga hasilnya aman ditempatkan di dalam URL atau nama berkas tanpa perlu pelolosan tambahan. JWT menggunakan Base64URL karena alasan ini.
Mengapa string Base64 saya menghasilkan kesalahan "invalid" saat didekodekan?
Penyebab yang paling umum adalah karakter yang bukan bagian dari alfabet Base64, seperti - dan _ yang digunakan oleh varian yang aman untuk URL, atau string yang panjangnya satu lebih banyak daripada kelipatan 4. Tidak ada string Base64 yang valid dengan panjang tersebut. Pendekodean juga gagal jika byte hasil pendekodean bukan teks UTF-8 yang valid. Alat ini mengabaikan spasi dan jeda baris di dalam string, serta tetap dapat mendekode string yang padding = di bagian akhirnya telah dihapus.
Dari mana Base64 berasal? Teknik ini bermula dari skema awal untuk mengirim data biner melalui sistem surat yang hanya mendukung teks pada tahun 1980-an, dan secara resmi distandardisasi sebagai bagian dari MIME dalam RFC 2045 pada 1996. Spesifikasi rujukan Base64, Base32, dan Base16 yang berlaku saat ini adalah RFC 4648.