Panduan

Apa Itu Base64? Asal, Cara Kerja, dan Penggunaannya

Pelajari asal Base64, cara 3 byte menjadi 4 karakter, padding, base64url, biaya ukuran, dan kapan encoding ini berguna.

Base64 dalam satu kalimat

Base64 adalah encoding biner-ke-teks: rangkaian byte apa pun diubah menjadi string dari alfabet kecil yang kompatibel luas. Algoritma tidak peduli apakah byte itu membentuk foto, PDF, atau kata; ia hanya memberi kemasan yang cocok untuk sistem berbasis teks.

Transformasi ini dapat dibalik dan tidak menghilangkan data, tetapi bukan enkripsi, hash, atau kompresi.

Dari mana Base64 berasal

Jaringan dan sistem email awal tidak selalu dapat membawa nilai 8-bit sembarang tanpa perubahan. Gateway tertentu mengharapkan teks 7-bit yang dapat dicetak dan bisa merusak data biner. Skema terdahulu seperti uuencode mengatasi masalah serupa; encoding 64 karakter untuk Privacy-Enhanced Mail dalam RFC 1421 adalah pendahulu langsung Base64 modern.

MIME kemudian menamai Base64 sebagai Content-Transfer-Encoding untuk isi dan lampiran email. RFC 4648 tahun 2006 kini menjadi acuan umum alfabet standar dan aman untuk URL. Base64 tumbuh melalui standar interoperabilitas, bukan satu penemuan yang berdiri sendiri.

Mengapa 64 karakter dan cara kerja aturan 3-ke-4

Enam bit dapat mewakili tepat 64 nilai, dari 0 sampai 63. Base64 standar memetakannya ke A–Z, a–z, 0–9, +, dan /. Encoder membaca tiga byte atau 24 bit, lalu membagi ulang menjadi empat kelompok 6 bit. Setiap nilai menjadi indeks alfabet dan menghasilkan satu karakter.

Untuk “Man”, byte ASCII/UTF-8 menghasilkan indeks 19, 22, 5, dan 46: T, W, F, dan u. Hasilnya TWFu; decoding menempuh jalur yang sama secara terbalik.

“Man” mengisi satu blok 24 bit penuh sehingga tidak memerlukan padding.
Input
Man
Byte input
01001101 01100001 01101110
Kelompok 6 bit
010011 010110 000101 101110
Indeks alfabet
19 · 22 · 5 · 46
Output Base64
TWFu

Padding, Unicode, dan base64url

Blok terakhir satu byte menghasilkan dua karakter data lalu ==; dua byte menghasilkan tiga karakter lalu =. Padding tidak menyembunyikan data, melainkan menunjukkan berapa banyak bagian nyata dalam blok 24 bit terakhir. Sebagian protokol menghapusnya bila panjang sudah diketahui.

Base64 bekerja pada byte. Teks seperti Bahasa Indonesia, 中文, atau emoji harus menjadi byte, biasanya UTF-8, terlebih dahulu. Base64url mengganti + dan / dengan - dan _ untuk URL atau nama file. Alfabetnya terkait, tetapi jangan mencampur varian tanpa mengikuti protokol.

Kapan Base64 benar-benar berguna

Contoh klasiknya adalah lampiran MIME, blok PEM sertifikat atau kunci, dan URL data: untuk gambar atau font kecil. JSON dan XML dapat membawa data biner kecil sebagai string. Kredensial HTTP Basic memakai Base64 dan segmen JWT memakai base64url; keduanya tetap bukan rahasia.

Intinya adalah kompatibilitas: saluran luar meminta teks, sedangkan muatannya berupa byte. Jika upload, object storage, atau BLOB sudah menerima biner, Base64 mungkin tidak menyelesaikan masalah apa pun.

Biaya ukuran dan performa

Setiap tiga byte lengkap menjadi empat karakter. Panjang tepatnya 4 × ceil(n / 3), sehingga overhead mendekati 33,3% untuk input besar dan bisa lebih tinggi untuk input kecil. Pemisah baris atau awalan URL data: menambah sedikit lagi.

Kompresi di lapisan lain mungkin mengurangi transfer, tetapi encoding tetap memakai memori dan CPU. File besar biasanya lebih bersih dikirim langsung sebagai biner.

Hal yang tidak dilakukan Base64

Base64 tidak menyediakan kerahasiaan atau keaslian. Siapa pun dapat mendecode dan mengubah string tanpa kunci. Jangan pakai untuk melindungi kata sandi, token API, atau data pribadi. Gunakan enkripsi dan TLS untuk rahasia, hash kriptografis untuk ringkasan, serta tanda tangan atau MAC untuk mendeteksi perubahan.

Aturan singkat: gunakan Base64 untuk melewati batas teks, bukan batas keamanan.

Sumber teknis