Format Base64

Masukan Messy Base64
0 karakter

Format string Base64 secara online, dukung lebar karakter kustom (64/76/80/100 karakter) dan indentasi (0/2/4 spasi) per baris, cocok untuk membaca string panjang, perbandingan tangkapan layar, dan tata letak dokumen. Hanya mengubah format tampilan, tidak mengubah data encoding Base64 asli.

Rekomendasi Terkait

Apa itu Pemformatan Base64?

Pemformatan Base64 adalah pemisahan string Base64 yang panjang menjadi beberapa baris pada lapisan tampilan dengan lebar karakter yang ditentukan (seperti 64/76/80/100), serta mendukung indentasi 0/2/4 spasi. Hasil pemformatan secara visual lebih mudah dibaca, lebih cocok untuk tangkapan layar, pencetakan, dan tata letak dokumen, tetapi **tidak mengubah konten byte asli** — menghapus semua baris baru dan indentasi akan mengembalikan Base64 satu baris asli.

**Mengapa perlu diformat?** Base64 standar RFC 4648 tidak mewajibkan pemisahan baris, tetapi dalam penggunaan praktis: ①String Base64 yang panjang mudah meluap menyebabkan pengguliran horizontal dalam sistem tiket, alat obrolan, dan dokumen Markdown; ②Protokol MIME (RFC 2045) menetapkan pemisahan baris setiap 76 karakter (untuk lampiran email); ③Tampilan multi-baris saat peninjauan kode lebih mudah menemukan karakter abnormal; ④Tata letak tangkapan layar dokumen memerlukan perataan yang rapi.

**Skenario penggunaan umum:** ①Tata letak dokumen teknis: menyematkan Base64 panjang dalam Markdown / Confluence / Notion; ②Perbandingan tangkapan layar: memudahkan tim melihat string Base64 lengkap dalam tangkapan layar PR / laporan Bug; ③Pemeriksaan manual: menemukan karakter ilegal (seperti campuran baris baru atau spasi) dengan cepat dalam Code Review; ④Lampiran email: memisahkan baris sesuai standar MIME 76 karakter untuk memudahkan transmisi SMTP; ⑤Tampilan log layar lebar: menampilkan multi-baris pada layar pemantauan untuk memudahkan pembacaan.

**Perbedaan dengan MIME Base64:** MIME Base64 (RFC 2045) memisahkan baris secara tetap setiap 76 karakter, yang merupakan persyaratan wajib tingkat protokol. Pemformatan alat ini lebih fleksibel, mendukung berbagai lebar karakter 64/76/80/100 + indentasi 0/2/4 spasi, cocok untuk berbagai skenario dokumen. Pemisahan baris MIME dapat direproduksi dengan memilih lebar 76 karakter.

**Keamanan pemformatan:** Alat ini hanya menyisipkan karakter baris baru dan indentasi pada lapisan tampilan, **tidak pernah mengubah konten byte Base64 asli**. Hasil pemformatan dapat dikembalikan menjadi string Base64 asli yang identik setelah menghapus semua karakter whitespace. Sebagian besar dekoder Base64 akan mengabaikan karakter whitespace secara otomatis saat decoding, sehingga hasil pemformatan dapat langsung digunakan untuk decoding.

Kasus penggunaan

  • Bagi string Base64 sangat panjang per baris dengan lebar tetap agar mudah dibaca
  • Format Base64 untuk tampilan dokumen atau perbandingan tangkapan layar
  • Optimasi tata letak Base64 untuk pencetakan atau catatan tiket
  • Kombinasikan dengan alat pemisah dan penggabungan untuk penyesuaian struktur Base64
  • Memisahkan baris Base64 sesuai standar MIME (76 karakter) untuk lampiran email
  • Tampilan multi-baris Base64 saat peninjauan kode untuk memudahkan menemukan karakter abnormal
  • Menyematkan Base64 ke dalam Markdown dengan indentasi 4 spasi untuk menjaga gaya kode
  • Tampilan log layar lebar: menampilkan payload Base64 panjang secara multi-baris dalam sistem pemantauan

Cara Penggunaan

  1. Tempelkan string Base64 yang perlu diformat (bisa dengan atau tanpa baris baru)
  2. Pilih lebar karakter per baris: 64 / 76 / 80 / 100
  3. Pilih indentasi: 0 / 2 / 4 spasi
  4. Alat secara real-time memformat dan menampilkan sesuai lebar dan indentasi yang ditentukan
  5. Salin hasil pemformatan untuk dokumen, atau klik pulihkan untuk menghapus baris baru

Fitur

  • Tampilan string panjang per baris: cocok untuk mengatur Base64 panjang dengan lebar tetap menjadi format yang lebih mudah dibaca
  • Ramah pemeriksaan manual: digunakan untuk perbandingan tangkapan layar, catatan tiket, tata letak cetak, dan perapihan dokumen
  • Konten tidak diubah: hanya menyesuaikan tampilan, tidak mengubah data encoding Base64 asli
  • Dapat dikombinasikan dengan alat lain: cocok digunakan bersama alat pemisah, penggabungan, verifikasi, dan perbandingan
  • Lebar karakter kustom: mendukung 64 / 76 / 80 / 100 karakter per baris, fleksibel menyesuaikan berbagai kebutuhan tata letak
  • Indentasi dapat dikonfigurasi: mendukung indentasi 0 / 2 / 4 spasi, memudahkan perataan dalam blok kode atau Markdown
  • Statistik karakter dan jumlah baris: menampilkan jumlah karakter input dan total baris output secara real-time
  • Pemrosesan lokal di browser tanpa unggahan: semua pemformatan selesai di dalam browser, tidak melalui server mana pun

Contoh Kode

JavaScript: Implementasi Manual Pemformatan Base64 (Memahami Prinsip)

javascript

Memahami logika dasar pemformatan Base64 — membagi berdasarkan lebar karakter dan menyisipkan karakter baris baru.

// Fungsi pemformatan Base64 (sesuai dengan logika alat ini)
function formatBase64(input, lineLength = 76, indent = 0) {
  // 1. Hapus semua karakter whitespace
  const clean = input.replace(/\s/g, '');
  if (!clean) return '';

  // 2. Bagi sesuai lebar yang ditentukan
  const lines = [];
  for (let i = 0; i < clean.length; i += lineLength) {
    const line = clean.slice(i, i + lineLength);
    lines.push(' '.repeat(indent) + line);
  }

  // 3. Gabungkan dengan karakter baris baru
  return lines.join('\n');
}

// Contoh penggunaan
const b64 = 'a'.repeat(200);
console.log(formatBase64(b64, 76, 0));
// Output: Base64 dengan 76 karakter per baris

// Pembatalan format (untuk decoding atau transmisi)
function unformatBase64(input) {
  return input.replace(/\s/g, '');
}

console.log(unformatBase64(formatBase64(b64, 76, 0)).length); // 200

Python: Pemformatan Base64 + Pemisahan Baris MIME

python

Implementasi Python untuk memisahkan baris setiap 76 karakter (standar MIME) dan dapat menentukan indentasi.

import textwrap

def format_base64(b64_str: str, width: int = 76, indent: int = 0) -> str:
    """Format string Base64 menjadi multi-baris"""
    # Hapus semua whitespace
    clean = ''.join(b64_str.split())
    if not clean:
        return ''

    # Gunakan textwrap untuk membagi sesuai lebar
    lines = textwrap.wrap(clean, width=width)

    # Tambahkan indentasi
    if indent > 0:
        lines = [' ' * indent + line for line in lines]

    return '\n'.join(lines)


# Contoh penggunaan
b64 = 'aGVsbG8gd29ybGQ=' * 10
print(format_base64(b64, 76, 0))

# Mereproduksi MIME Base64 (RFC 2045)
mime_format = format_base64(b64, 76)
print(f'Jumlah baris MIME Base64: {len(mime_format.splitlines())}')

# Kembalikan ke satu baris
single_line = b64.replace('\n', '').replace(' ', '')
print(f'Panjang satu baris: {len(single_line)}')

Command Line: Alat fold + Pemisahan Baris MIME Base64

bash

Alat fold bawaan sistem Linux/macOS dapat dengan cepat mengimplementasikan pemformatan Base64 di command line.

# 1. Input Base64 → pisahkan baris setiap 76 karakter (standar MIME)
echo "aGVsbG8gd29ybGQ=" | base64 | base64 | fold -w 76

# 2. Format file Base64 panjang → output ke file baru
fold -w 76 encoded.txt > formatted.txt

# 3. Pisahkan baris setiap 64 karakter (tampilan padat)
fold -w 64 encoded.txt > compact.txt

# 4. Sekaligus hapus semua baris baru (pembatalan format)
tr -d '\n' < formatted.txt > single-line.txt

# 5. Verifikasi: panjang Base64 + jumlah baris
wc -c encoded.txt | awk '{print "Jumlah karakter:", $1}'
wc -l formatted.txt | awk '{print "Jumlah baris:", $1}'

# 6. Gabungkan openssl untuk encoding base64 lengkap + pemformatan
echo "Hello Dunia" | openssl base64 -A | fold -w 76 > hello.b64.txt
cat hello.b64.txt

Pertanyaan Umum

Mengapa perlu memformat Base64?

String Base64 panjang tidak nyaman dibaca, ditangkap layar, atau dicetak. Setelah dibagi per baris dengan lebar tetap, lebih cocok untuk pemeriksaan manual, tampilan dokumen, dan analisis perbandingan.

Apakah pemformatan mengubah konten Base64 asli?

Tidak. Hanya menyesuaikan cara tampilan, tidak mengubah encoding itu sendiri, cocok digunakan pada tahap pemeriksaan dan perapihan. Hapus semua karakter whitespace dari hasil pemformatan untuk mengembalikan Base64 satu baris asli. Semua dekoder Base64 (atob bawaan browser / Node.js Buffer / Python base64) akan mengabaikan karakter whitespace secara otomatis, sehingga hasil pemformatan dapat langsung digunakan untuk decoding.

Apakah cocok untuk pemeriksaan log dan perbandingan tangkapan layar?

Sangat cocok. Terutama ketika perlu memasukkan string panjang ke dokumen, tiket, atau catatan obrolan, tampilan per baris akan lebih jelas. String Base64 panjang mudah meluap menyebabkan pengguliran horizontal dalam sistem tiket (Jira / Zendesk), alat obrolan (Slack / Teams), atau dokumen Markdown. Setelah diformat, tampilan multi-baris jelas dan mudah dibaca, dapat langsung ditempelkan ke lampiran tiket atau jendela obrolan.

Bisa digunakan bersama alat pemisah dan penggabungan multi baris?

Bisa. Pemformatan lebih cenderung pada optimalisasi tampilan, sedangkan pemisahan dan penggabungan lebih pada penyesuaian struktur, keduanya cocok digunakan bersama.

Apa perbedaan antara pemformatan Base64 dan MIME Base64?

MIME Base64 secara ketat memisahkan baris dengan lebar 76 karakter sesuai RFC 2045, yang merupakan standar transmisi lampiran email. Pemformatan alat ini lebih fleksibel, memungkinkan lebar karakter kustom 64/76/80/100 + indentasi 0/2/4 spasi, lebih cocok untuk berbagai kebutuhan tampilan seperti dokumen dan tangkapan layar. Pilih lebar 76 karakter untuk mereproduksi pemisahan baris MIME.

Mengapa ada berbagai lebar karakter 64 / 76 / 80 / 100?

64 karakter cocok untuk dokumen padat (seperti terminal CLI, tabel Markdown); 76 karakter adalah standar email MIME; 80 karakter adalah lebar terminal tradisional; 100 karakter cocok untuk editor layar lebar dan dokumen modern. Setiap lebar memiliki skenario penggunaan terbaik yang sesuai.

Apa kegunaan indentasi?

Indentasi (0/2/4 spasi) membuat Base64 tetap rata dalam blok kode atau Markdown: 0 spasi cocok untuk teks biasa, 2 spasi cocok untuk gaya kode JS/Python, 4 spasi cocok untuk blok kode bersarang Markdown.

Apakah pemformatan menambah jumlah karakter Base64?

Akan bertambah sekitar 1-3% (karakter baris baru + spasi indentasi), tetapi tidak memengaruhi hasil decoding. Jika transmisi sensitif terhadap ukuran (seperti parameter URL), disarankan untuk menggunakan fungsi "pulihkan" terlebih dahulu untuk mengembalikan ke satu baris.

Mendukung UTF-8 / bahasa Indonesia?

Alat ini tidak langsung memproses set karakter — hanya memformat string Base64 itu sendiri. Jika Base64 berisi bahasa Indonesia (seperti Base64 yang dikodekan setelah encoding UTF-8), pemformatan tidak akan memengaruhi kebenaran encoding-nya.

Apakah ukuran setelah diformat menjadi lebih besar, dapat dikompresi?

Yang ditambahkan pemformatan hanyalah baris baru dan indentasi, yang ramah terhadap algoritma kompresi. Dapat dikompresi dengan gzip / Brotli, atau gunakan alat Base64 Stats untuk melihat penambahan spesifik.

Pemecahan Masalah

Beberapa karakter Base64 hilang setelah diformat

Mungkin Base64 sumber mengandung karakter ilegal (seperti karakter baris baru yang tidak ditangani dengan benar). Gunakan alat Base64 Clean untuk membersihkan terlebih dahulu sebelum memformat.

Hasil pemformatan tidak konsisten dengan byte asli

Ini tidak mungkin — pemformatan hanya menyisipkan karakter whitespace, tidak mengubah konten byte. Jika ditemukan ketidakkonsistenan, berarti Base64 sumber telah ditangani dengan salah (seperti pemformatan berulang yang menyebabkan penyisipan whitespace berulang).

Antarmuka lambat setelah memformat string panjang

String Base64 yang melebihi 10MB dapat menyebabkan browser menjadi lambat. Saran: ①proses secara bertahap; ②gunakan base64-clean terlebih dahulu untuk menghapus whitespace berlebih; ③kurangi lebar (seperti 64 karakter) untuk mengurangi beban rendering per baris.

Glosarium

Pemformatan Base64
Memisahkan string Base64 menjadi beberapa baris dengan lebar yang ditentukan pada lapisan tampilan, hanya memengaruhi presentasi visual, tidak mengubah encoding itu sendiri.
MIME Base64
Varian Base64 dengan pemisahan baris setiap 76 karakter yang ditetapkan RFC 2045, terutama digunakan untuk transmisi lampiran email.
Lebar karakter (line length)
Jumlah karakter Base64 yang ditampilkan per baris. Nilai umum: 64 (padat), 76 (standar MIME), 80 (cetak standar), 100 (layar lebar).
Indentasi (indent)
Jumlah spasi di awal setiap baris, nilai umum: 0 (tanpa indentasi), 2 (gaya kode), 4 (blok kode Markdown).
Karakter whitespace (whitespace)
Spasi, Tab, karakter baris baru, dll. yang mungkin ada dalam string Base64. Pemformatan akan menghapus karakter-karakter ini terlebih dahulu, lalu menyisipkan ulang sesuai lebar yang ditentukan.
Pembatalan format (unformat)
Mengembalikan Base64 yang telah diformat (multi-baris + indentasi) menjadi bentuk satu baris tanpa whitespace, untuk decoding atau transmisi.

Tabel Perbandingan 4 Lebar Karakter

Lebar karakter yang berbeda cocok untuk skenario tampilan yang berbeda, dapat dipilih sesuai lingkungan target.

Lebar KarakterSkenario KhasStandar TerkaitContoh
64 karakterTerminal CLI, tabel MarkdownTampilan padatLayar kecil / kepadatan tinggi
76 karakterTransmisi lampiran emailRFC 2045 MIMEEmail / SMTP
80 karakterPencetakan terminal tradisionalTerminal Unix tradisionalPencetakan dokumen
100 karakterEditor modern / layar lebarSpesifikasi UI modernIDE / dokumen

Tabel Perbandingan 3 Gaya Indentasi

Gaya indentasi yang berbeda cocok dengan standar kode yang berbeda, pilih sesuai kebiasaan tim/proyek.

IndentasiGaya KodeContoh (Baris pertama Base64)
0 spasiTanpa indentasi (teks biasa)QUJD...
2 spasiStandar JS / Python QUJD...
4 spasiBersarang Markdown / standar Java QUJD...

Authoritative References