Cara menggunakan
- Seret file ke area unggah, atau klik area tersebut untuk memilih file dari perangkat Anda (hingga 100 MB).
- Tentukan Keluaran: Base64 mentah untuk API dan file konfigurasi, atau Data URI untuk HTML dan CSS.
- Aktifkan Bungkus baris setiap 76 karakter hanya jika sistem tujuan mengharapkan baris bergaya MIME, misalnya isi email.
- Periksa nama file, tipe MIME, dan ukurannya, lalu salin hasilnya atau unduh sebagai file .txt.
Mengapa file perlu dienkode sebagai Base64?
Banyak format yang membawa data antarsistem hanya mendukung teks. JSON, XML, YAML, HTML, dan header email tidak dapat menampung byte sembarang, karena file bisa berisi byte nol, urutan karakter yang tidak valid, atau akhir baris yang akan diubah oleh parser teks. Base64 memetakan setiap 3 byte file menjadi 4 karakter dari himpunan 64 huruf, angka, +, dan /, sehingga file apa pun dapat dikirim sebagai string biasa dan didekode kembali menjadi byte yang persis sama.
Konsekuensinya adalah ukuran: teks hasil enkode sekitar 33% lebih besar daripada filenya, dan jeda baris menambah sedikit lagi. File 3 MB menjadi sekitar 4 MB Base64.
Penggunaan umum
- API JSON dan XML. Endpoint yang tidak menerima unggahan formulir multipart sering mengharapkan file sebagai string Base64 dalam satu kolom, dengan nama dan tipenya di kolom lain.
- Lampiran email. MIME mengenkode lampiran dalam Base64 dengan panjang baris maksimal 76 karakter (RFC 2045). Bungkus baris menghasilkan tata letak yang sama.
- Konfigurasi dan secret. Nilai di bawah
datadalam Kubernetes Secret berupa Base64, sehingga sertifikat TLS, keystore, atau file lisensi harus dienkode sebelum dimasukkan ke manifest. Sistem CI juga sering menyimpan secret biner di variabel lingkungan dengan cara yang sama. - Database dan kode sumber. File biner kecil seperti font, efek suara, atau fixture pengujian dapat disimpan di kolom teks atau konstanta string, alih-alih sebagai file terpisah.
Untuk gambar, Gambar ke Base64 menyediakan fitur ubah ukuran serta cuplikan HTML dan CSS siap pakai. Untuk mengubah Base64 kembali menjadi file, gunakan Base64 ke File.
Base64 mentah atau data URI?
Base64 mentah hanya berisi byte yang telah dienkode. Format inilah yang diharapkan oleh API, Kubernetes, database, dan sebagian besar library pemrograman, biasanya disertai kolom terpisah untuk nama file atau tipe konten.
Data URI menambahkan awalan berisi tipe MIME, misalnya data:application/pdf;base64,, sehingga browser dapat menggunakan seluruh string sebagai URL di src, href, atau url() pada CSS. Jangan kirim awalan tersebut ke API yang meminta Base64 biasa; banyak decoder akan menolaknya. Untuk menentukan tipe MIME sendiri atau menggunakan pengodean persen, coba Generator Data URI.
Matikan bungkus baris untuk JSON, YAML, dan kode sumber. String JSON tidak boleh berisi jeda baris mentah, dan nilai yang dibungkus di YAML mudah rusak.
Mengenkode file lewat baris perintah
# Linux (GNU coreutils): -w 0 mematikan bungkus baris 76 karakter bawaan
base64 -w 0 report.docx > report.txt
# macOS
base64 -i report.docx -o report.txt
# Windows PowerShell
[Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\files\report.docx"))
# Kubernetes mengenkode file untuk Anda
kubectl create secret generic app-cert --from-file=tls.crt
Pertanyaan yang sering diajukan
Apakah ada batas ukuran file?
File hingga 100 MB dapat dienkode. Keluarannya sekitar sepertiga lebih besar, sehingga file 100 MB menghasilkan sekitar 133 MB teks. Menampilkan teks sebanyak itu dapat membuat halaman lambat, jadi untuk file besar gunakan Unduh alih-alih menyalin dari kotak keluaran.
Apakah file saya diunggah ke server?
Tidak. File dibaca dan dienkode oleh JavaScript di browser Anda, dan tidak ada yang dikirim melalui jaringan, sehingga sertifikat, kunci, dan dokumen pribadi tetap berada di perangkat Anda.
Apakah Base64 mengompresi atau mengenkripsi file?
Tidak keduanya. Base64 membuat data sekitar 33% lebih besar, dan siapa pun dapat mendekodenya. Jika file harus tetap rahasia, enkripsi terlebih dahulu sebelum dienkode; jika ukuran penting, kompres dulu, misalnya sebagai arsip ZIP atau gzip.
Mengapa keluaran berisi jeda baris?
Opsi Bungkus baris setiap 76 karakter sedang aktif. Format ini sesuai dengan MIME yang digunakan dalam email, tetapi sebagian besar API, dokumen JSON, dan manifest Kubernetes mengharapkan satu baris tanpa putus, jadi matikan opsi ini untuk keperluan tersebut.