Base64 dalam satu kalimat
Base64 adalah encoding biner-ke-teks yang didefinisikan dalam RFC 4648, yang merepresentasikan setiap 3 byte data sebagai 4 karakter dari alfabet A–Z, a–z, 0–9, +, dan /.
Mengapa Base64 diciptakan
Banyak sistem dirancang hanya untuk teks: email (SMTP), JSON, XML, atribut HTML, URL, dan terminal. Data biner mentah seperti gambar atau PDF bisa mengandung byte yang akan diubah atau ditolak oleh sistem-sistem tersebut. Base64 mengubah data menjadi karakter aman yang dapat dicetak, sehingga data tetap utuh sampai tujuan.
Cara kerja encoding Base64, langkah demi langkah
- Ambil byte input:
M,a,n= 77, 97, 110. - Tulis sebagai 24 bit:
01001101 01100001 01101110. - Bagi bit-bit tersebut menjadi empat kelompok 6 bit:
010011 010110 000101 101110= 19, 22, 5, 46. - Cari setiap angka di alfabet: 19 =
T, 22 =W, 5 =F, 46 =u.
Jadi Man menjadi TWFu. Proses decode cukup membalik langkah-langkah ini.
Alfabet Base64
| Nilai | Karakter |
|---|---|
| 0–25 | A–Z |
| 26–51 | a–z |
| 52–61 | 0–9 |
| 62 | + (aman URL: -) |
| 63 | / (aman URL: _) |
| padding | = |
Arti padding =
Jika panjang input bukan kelipatan 3, kelompok terakhir akan dilengkapi dan ditandai dengan =: Ma menjadi TWE= dan M menjadi TQ==. Padding tidak pernah muncul di tengah string yang valid.
Varian Base64
- Base64 standar (RFC 4648) – alfabet di atas dengan padding
=. - Base64URL – memakai
-dan_, sering kali tanpa padding; digunakan di URL, nama file, dan JWT. - MIME Base64 – alfabet standar dengan baris baru setiap 76 karakter, digunakan di email.
Base64 bukan enkripsi
Base64 tidak menyembunyikan apa pun: siapa saja bisa men-decode-nya dalam sekejap. Base64 sering disangka sebagai bentuk perlindungan karena hasilnya terlihat acak. Gunakan enkripsi sungguhan seperti AES untuk data rahasia, dan pakai Base64 hanya untuk mengirim byte terenkripsi tersebut sebagai teks.
Tambahan ukuran
Panjang hasil encode adalah 4 × ⌈n / 3⌉ karakter untuk n byte, sekitar 33% lebih besar daripada aslinya. Dengan baris baru MIME, ukurannya bertambah lagi sekitar 2–3%.
Di mana Base64 digunakan
- Lampiran email (MIME)
- Data URI untuk gambar dan font di HTML dan CSS
- Field biner di API JSON dan XML
- JSON Web Token dan OAuth
- Header autentikasi HTTP Basic
- Sertifikat PEM dan kunci SSH
- Secret Kubernetes dan file konfigurasi
Pertanyaan yang sering diajukan
Apakah Base64 sama dengan enkripsi atau hashing?
Tidak. Enkripsi membutuhkan kunci untuk dibalik, hashing sama sekali tidak bisa dibalik, sedangkan Base64 dapat di-decode oleh siapa saja.
Mengapa disebut Base64?
Karena Base64 menggunakan alfabet berisi 64 karakter, sehingga setiap karakter membawa 6 bit informasi (26 = 64).
Bagaimana cara mengetahui apakah sebuah string adalah Base64?
String tersebut hanya berisi A–Z, a–z, 0–9, +, / (atau - dan _), panjangnya biasanya kelipatan 4, dan bisa diakhiri satu atau dua tanda =. Cara tercepat untuk mengujinya adalah menempelkannya ke decoder kami.
Terakhir diperbarui: