Base64
Base64 (Encoding Biner-ke-Teks)
Skema encoding yang merepresentasikan data biner (byte mentah) sebagai string teks ASCII, memungkinkan data biner ditransfer melalui media berbasis teks seperti email, JSON, HTML, dan URL.
Detail Teknis
Base64 mengodekan setiap 3 byte (24 bit) menjadi 4 karakter ASCII dari alfabet 64 karakter (A-Z, a-z, 0-9, +, /). Padding '=' ditambahkan jika input bukan kelipatan 3 byte. Overhead ukuran: persis 33% lebih besar dari data biner asli (rasio 4:3). Varian: Base64 standar (RFC 4648, +/), URL-safe Base64 (-_ bukan +/, tanpa padding), MIME Base64 (baris bungkus pada 76 karakter). Kasus penggunaan: data URI (data:image/png;base64,...), embedding gambar di CSS/HTML, konten email (MIME), pengkodean JSON dari data biner, header Otentikasi Dasar HTTP (Authorization: Basic base64(user:pass)). Ini adalah encoding, BUKAN enkripsi — tidak ada keamanan yang diberikan. API browser: btoa()/atob() untuk string, FileReader.readAsDataURL() untuk file.
Contoh
```javascript
// Encode string to Base64
const encoded = btoa('Hello, World!'); // 'SGVsbG8sIFdvcmxkIQ=='
// Decode Base64 to string
const decoded = atob('SGVsbG8sIFdvcmxkIQ=='); // 'Hello, World!'
// File to Base64 Data URI
const reader = new FileReader();
reader.onload = () => console.log(reader.result);
// → 'data:image/png;base64,iVBORw0KGgo...'
reader.readAsDataURL(file);
```