fixmint
ID

Base64 dijelaskan: mengapa datanya jadi lebih besar dan cara men-decode-nya

Oleh · · diperbarui 8 November 2026 · Dibaca 5 menit

Base64 menulis data biner sebagai teks biasa, dengan 64 karakter: A sampai Z, a sampai z, 0 sampai 9, ditambah + dan /. Setiap tiga byte menjadi empat karakter, sehingga teksnya sekitar sepertiga lebih panjang daripada data yang dibawanya. Orang memakainya saat suatu format hanya menerima teks, misalnya data URL di halaman web, field JSON, atau lampiran email.

Encode dan decode Base64Membaca atau membuat string Base64Pakai gratis

Mengapa format teks memerlukannya

Banyak format dibuat hanya untuk teks. Isi email, file JSON, dan file CSS bisa memuat huruf dan simbol dengan aman, tetapi gambar mentah atau file zip berisi nilai byte yang bisa diubah, dipotong, atau dibaca sebagai kode kontrol oleh sistem tertentu. Base64 hanya memakai karakter yang dilewatkan tanpa perubahan oleh setiap sistem teks, sehingga data sampai dalam keadaan utuh. Standar ini didefinisikan dalam RFC 4648.

Base64 adalah encoding, bukan rahasia. Siapa pun bisa men-decode-nya tanpa kunci, jadi jangan pernah memakainya untuk menyembunyikan kata sandi atau data pribadi.

Bagaimana tiga byte menjadi empat karakter

Ambil kata Man, yang terdiri dari tiga byte: 77, 97, dan 110 dalam desimal. Ketiga byte itu bersama-sama membentuk 24 bit. Potong 24 bit tersebut menjadi empat kelompok enam bit, dan setiap kelompok adalah angka dari 0 sampai 63 yang menunjuk satu karakter dalam alfabet. Man menjadi TWFu.

Enam bit hanya bisa mewakili 64 nilai, jadi empat karakter membawa tiga byte. Hasilnya karena itu sekitar sepertiga lebih besar daripada input, sebelum ditambahkan pemisah baris.

Jika data tidak habis dibagi tiga byte, encoder menambahkan tanda = di akhir. Ma, yang berukuran dua byte, menjadi TWE=, dan M, yang berukuran satu byte, menjadi TQ==. Padding itu memberi tahu decoder berapa byte yang ada di kelompok terakhir.

Teks harus di-encode sebagai UTF-8 dulu

Base64 bekerja pada byte, sedangkan teks tersusun dari karakter. Karakter seperti é atau ✓ disimpan sebagai lebih dari satu byte dalam UTF-8, encoding yang dipakai di seluruh web. Fungsi browser btoa() menerima string dan memperlakukan setiap karakter sebagai satu byte, sehingga gagal untuk karakter di luar rentang Latin dasar. Memanggilnya dengan tanda centang akan memunculkan InvalidCharacterError.

Solusinya adalah mengubah teks menjadi byte UTF-8 dulu, lalu meng-encode byte tersebut. Frasa héllo ✓ berukuran 10 byte dalam UTF-8, dan Base64-nya adalah aMOpbGxvIOKckw==. Encode dan decode Base64 melakukan langkah ini untuk Anda. Saat men-decode, alat membaca byte kembali sebagai UTF-8. Jika byte tersebut bukan teks UTF-8 yang valid, alat memperlakukannya sebagai file dan menawarkan unduhan.

Base64 aman untuk URL

Alfabet standar memuat + dan /. Dalam URL, + bisa berarti spasi, dan / memisahkan bagian-bagian path, sehingga string Base64 dapat merusak tautan. Bentuk aman-URL (RFC 4648, bagian 5) memakai - dan _ sebagai gantinya, dan biasanya menghilangkan padding =. Gunakan bentuk ini saat string dimasukkan ke URL, nama file, atau token. Decoder menerima kedua bentuk, dengan atau tanpa padding.

Jika Base64 berasal dari sebuah tautan, decode URL dulu. Nilai yang sudah di-percent-encode dalam tautan harus di-decode sebelum Base64-nya bisa dibaca. Panduan percent-encoding menjelaskan aturan untuk tautan.

Token login adalah kasus yang paling umum: JSON Web Token terdiri dari tiga bagian Base64url yang dihubungkan dengan titik, yaitu header, data, dan tanda tangan. Decoder JWT memecah token seperti itu dan menampilkan header dan data sebagai JSON yang mudah dibaca.

Data URL dan gambar

Data URL memasukkan file ke dalam tautan itu sendiri. Bentuknya adalah data:, lalu jenis media, lalu ;base64, lalu koma, lalu datanya. Gambar kecil menjadi data:image/png;base64, diikuti byte yang sudah di-encode. Halaman web dan stylesheet menerima bentuk ini, yang menghemat satu permintaan untuk ikon kecil.

Kelemahannya ada pada ukuran. Datanya sekitar sepertiga lebih besar, dan data itu ikut berpindah di dalam halaman atau stylesheet, bukan sebagai file terpisah yang bisa di-cache oleh browser. Gunakan data URL untuk gambar kecil, bukan foto besar. Kompres gambar foto dulu sebelum di-encode jika ukurannya besar.

Saat Anda men-decode Base64 di alat ini, alat memeriksa beberapa byte pertama dari data. File PNG, JPEG, GIF, dan WebP masing-masing diawali dengan tanda pengenal yang sudah dikenal, sehingga alat menampilkan pratinjau dan menawarkan unduhan. Data URL dengan jenis gambar juga ditampilkan sebagai gambar.

Cara melakukannya dengan fixmint

  1. Pilih Encode atau Decode di atas Teks atau Base64, lalu tempel teks atau Base64 Anda.
  2. Centang Alfabet aman-URL, tanpa padding = untuk token, nama file, dan tautan. Decoder menerima kedua bentuk dalam kondisi apa pun.
  3. Untuk membuat data URL dari file, letakkan file di area seret dan lepas, lalu centang Untuk file: keluarkan data URL.
  4. Salin hasilnya. Jika byte yang di-decode adalah file, bukan teks, gunakan unduhan yang ditawarkan alat.

Kesalahan decoding yang umum

  • Ada karakter yang tidak diizinkan. Input memuat karakter di luar 64 karakter, misalnya tanda kutip dari kalimat yang disalin. Periksa dari mana teks itu berasal. Spasi tanpa lebar di teks yang disalin juga menyebabkan error yang sama, jadi hapus karakter tersembunyi lalu coba lagi. Panduan karakter tersembunyi menjelaskan asal-usulnya.
  • Panjangnya salah. Ada karakter yang hilang atau berlebih, yang biasanya berarti salinan terpotong.
  • Pemisah baris dan spasi. Email (MIME) memotong Base64 setiap 76 karakter. Decoder menghapus spasi dan pemisah baris, jadi Anda bisa menempel teks yang sudah terpotong apa adanya.
  • Padding hilang. Beberapa sistem menghilangkan tanda =. Decoder akan menambahkannya kembali.

Kasus khusus

  • Hasil decoding tampak seperti omong kosong. Bisa jadi itu file, bukan teks. File zip, PDF, atau program menghasilkan byte yang tidak terbaca sebagai teks. Alat menawarkan hasil seperti itu sebagai unduhan.
  • Input yang sangat besar. Seluruh file disimpan di browser selama di-encode atau di-decode, sehingga file yang sangat besar bisa lambat, dan di ponsel bisa gagal.

Jawaban singkat

Apakah Base64 sama dengan enkripsi?

Tidak. Base64 adalah encoding yang bisa dibalik tanpa kunci, sehingga siapa pun bisa men-decode-nya.

Mengapa Base64 saya lebih panjang daripada file-nya?

Setiap tiga byte menjadi empat karakter, sehingga teksnya sekitar sepertiga lebih besar.

Mengapa string Base64 yang disalin gagal di-decode?

Biasanya ada karakter yang hilang atau bertambah saat penyalinan, misalnya pemisah baris di tempat yang salah atau karakter terakhir yang tidak ada. Salin ulang dari sumbernya.

Diterjemahkan dari Asli dalam bahasa Inggris dengan bantuan AI.

Komentar

    Belum ada komentar. Jadilah yang pertama.

    Penilaian Anda (opsional)

    Email Anda tidak pernah ditampilkan atau disimpan.

    Sampul How to Remain Valuable When Intelligence Becomes CheapHow to Remain Valuable When Intelligence Becomes Cheap

    224 halaman tentang keunggulan manusia, ekonomi, dan strategis yang tetap langka ketika AI bisa mengerjakan sebagian besar pekerjaan kognitif.

    $3.84Beli di GumroadDalam bahasa Inggris