Enkode/Dekode Base64 (Teks)
Input
Output
Mengapa Menggunakan Pengkode Base64 Ini
- Pengkodean Base64 instan untuk teks, JSON, dan payload biner kecil
- Dukungan file (teks, gambar, biner) untuk konversi cepat ke string Base64
- Opsi aman-URL untuk JWT, parameter kueri, dan konteks web-aman
- Pembungkusan baris opsional untuk meniru alat CLI atau format email/PEM
- Salin satu-klik untuk penggunaan ulang mudah di header, konfigurasi, dan kode
- UI responsif yang berfungsi baik di desktop dan seluler
- Pengkodean terjadi di browser Anda โ data Anda tidak dikirim ke server jarak jauh
๐ง Cara Kerja Pengkodean Base64 (Langkah demi Langkah) for base64-encoder
Berikan masukan
Tempel teks, JSON, atau cuplikan Anda ke area masukan, atau jatuhkan file untuk mengonversi byte mentahnya ke Base64. Alat membaca byte persis seperti aslinya.
Konversi ke byte
Pengkode mengonversi karakter (seperti teks UTF-8) atau konten file menjadi byte. Setiap byte adalah nilai 8-bit antara 0 dan 255.
Kelompokkan ulang bit ke indeks Base64
Setiap 3 byte (3 ร 8 = 24 bit) dikelompokkan ulang menjadi 4 grup 6 bit (4 ร 6 = 24). Setiap grup 6-bit adalah indeks ke alfabet Base64.
Peta ke karakter Base64 & beri padding
Setiap indeks 6-bit dikonversi ke karakter Base64. Jika masukan tidak habis dibagi 3 byte, padding '=' ditambahkan sehingga panjang keluaran selalu kelipatan 4 karakter.
Spesifikasi Teknis
Set Karakter (RFC 4648)
Pengkode ini menggunakan alfabet Base64 standar yang didefinisikan oleh RFC 4648.
| Rentang / Jenis | Karakter | Catatan |
|---|---|---|
| Indeks 0โ25 | AโZ | Huruf besar |
| Indeks 26โ51 | aโz | Huruf kecil |
| Indeks 52โ61 | 0โ9 | Angka |
| Indeks 62โ63 | + / | Simbol Base64 standar |
| Padding | = | Memastikan panjang output adalah kelipatan 4 |
Ukuran & Overhead
Base64 menukar ukuran dengan keamanan di saluran teks saja. Harapkan sekitar sepertiga lebih banyak data setelah pengkodean.
| Ukuran asli | Ukuran Base64 (perkiraan) | Overhead |
|---|---|---|
| 3 byte | 4 karakter | ~33% lebih besar |
| 1 KB | โ 1,37 KB | ~37% termasuk padding dan baris baru |
| 1 MB | โ 1,37 MB | Rasio yang sama pada skala lebih besar |
Performa & Batasan Praktis
Pengkodean itu sendiri cepat, tetapi buffer besar dapat memengaruhi memori dan responsivitas browser.
| Ukuran muatan | Pengalaman pengguna | Rekomendasi |
|---|---|---|
| Beberapa KB | Instan | Ideal untuk header, cuplikan konfigurasi, dan data uji |
| 100 KB โ 1 MB | Sangat responsif | Khas untuk muatan API dan fixture |
| 1โ5 MB | Umumnya baik pada perangkat keras modern | Pertimbangkan alat CLI jika sering melakukan ini |
| > 5โ10 MB | Mungkin terasa lambat atau berat memori di browser | Gunakan encoder streaming atau utilitas CLI |
Enkoding Base64 Baris Perintah
Untuk file besar, otomatisasi, atau alur kerja CI, gunakan utilitas Base64 bawaan di platform Anda.
Linux / ๐ macOS
Enkode string
echo -n 'text' | base64Mengenkode string 'text' sebagai Base64 tanpa menambahkan baris baru.
Enkode file
base64 input.bin > output.b64Membaca data biner dari input.bin dan menulis teks Base64 ke output.b64.
Windows / PowerShell
Enkode string dengan PowerShell
[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("text"))Mengonversi byte UTF-8 untuk 'text' menjadi string Base64.
Enkode file dengan certutil (CMD)
certutil -encode input.bin output.b64Menggunakan alat bawaan Windows untuk membuat file terenkode Base64.
Aplikasi Praktis
Pengembangan Web & Data URI
Sisipkan aset dan sumber daya kecil langsung ke HTML, CSS, atau JavaScript.
- Hasilkan data:image/...;base64,... untuk logo, ikon, dan gambar kecil.
- Sisipkan font atau konten SVG dalam aturan CSS.
- Simpan muatan kecil di LocalStorage sebagai string Base64.
<img src="data:image/png;base64,iVBORw0KGgo...">document.styleSheets[0].insertRule("@font-face{src:url('data:font/woff2;base64,...')}" );Pengembangan API & Header
Kirim kredensial dan muatan kecil dengan aman melalui saluran teks saja.
- Buat header Authorization: Basic dari pasangan username:password.
- Enkode muatan JSON ke Base64 untuk header kustom atau parameter query.
- Bungkus blob biner dalam JSON sebagai string Base64.
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=fetch(url, { headers: { 'X-Payload': btoa(JSON.stringify(data)) } });Pengujian, Fixture & Debugging
Buat fixture teks saja yang stabil untuk sesi pengujian dan debugging.
- Enkode fixture biner (gambar, PDF) dan sematkan dalam kode uji.
- Simpan contoh muatan sebagai string Base64 alih-alih mengommit file biner.
- Prototipe payload untuk layanan yang mengharapkan field terenkode Base64.
// Contoh: Tes Jest menggunakan fixture Base64
const payload = Buffer.from(base64Fixture, 'base64');
expect(processPayload(payload)).toBeTruthy();
โ Frequently Asked Questions
โMengapa Base64 menggunakan padding '='?
Base64 mengelompokkan input menjadi blok 3 byte (24 bit) dan menghasilkan 4 karakter (4 ร 6 bit). Saat panjang input tidak habis dibagi 3, karakter padding '=' ditambahkan untuk menandakan bahwa blok terakhir lebih pendek. Padding adalah bagian dari format enkoding, bukan data asli.๐Bagaimana cara membuat Base64 yang aman untuk URL?
Base64 yang aman untuk URL mengganti '+' dengan '-' dan '/' dengan '_', serta sering menghilangkan padding '=' di akhir. Banyak pustaka memiliki mode aman-URL. Jika perlu melakukannya manual, mulai dari Base64 standar, lalu terapkan penggantian ini dan pangkas '=' sesuai kebutuhan Anda.๐Apakah enkoding Base64 merupakan tindakan keamanan?
Base64 adalah **enkoding** yang dapat dibalik yang membuat data biner aman untuk diangkut sebagai teks (misalnya dalam JSON, HTML, atau header). Ini tidak memberikan kerahasiaan atau integritas sendiri. Selalu gunakan HTTPS/TLS dan kriptografi yang tepat (seperti AES atau skema kunci publik) untuk keamanan.๐Berapa ukuran file maksimum yang harus saya enkode di sini?
Pro Tips
Untuk aset yang sangat kecil (< 10 KB), penyisipan sebagai URI data Base64 dapat mengurangi permintaan HTTP, tetapi hindari melakukan ini untuk gambar atau font besar.
Catat hanya payload Base64 yang dipotong (atau hash) di produksi untuk menghindari kebocoran konten sensitif dalam log.
Jika backend Anda mengharapkan Base64, validasi dan normalisasi input di sisi server untuk menolak payload yang rusak atau terlalu besar.
Additional Resources
Other Tools
- Pemerindah CSS
- Pemerindah HTML
- Pemerindah Javascript
- Pemerindah PHP
- Pemilih Warna
- Ekstraktor Sprite
- Dekoder Base64
- Pemformat Csharp
- Pemformat CSV
- Dockerfile Formatter
- Pemformat Elm
- Pemformat ENV
- Pemformat Go
- Pemformat GraphQL
- Pemformat HCL
- Pemformat INI
- Pemformat JSON
- Pemformat Latex
- Pemformat Markdown
- Pemformat ObjectiveC
- Php Formatter
- Pemformat Proto
- Pemformat Python
- Pemformat Ruby
- Pemformat Rust
- Pemformat Scala
- Pemformat Skrip Shell
- Pemformat SQL
- Pemformat SVG
- Pemformat Swift
- Pemformat TOML
- Typescript Formatter
- Pemformat XML
- Pemformat YAML
- Pemformat Yarn
- Pengecil CSS
- Html Minifier
- Javascript Minifier
- Pengecil JSON
- Pengecil XML
- Penampil Header HTTP
- PDF Ke Teks
- Penguji Regex
- Pemeriksa Peringkat SERP
- Pencarian Whois