Pemrosesan Padding Base64

Input
karakter. Isi: 0 =

Secara otomatis menghitung jumlah padding = yang diperlukan di akhir string Base64 sesuai standar RFC 4648 di browser, mendukung konversi dua arah (penambahan atau penghapusan padding), memperbaiki string Base64 yang tidak sesuai standar. Semua diproses secara lokal.

Rekomendasi Terkait

Apa itu padding Base64?

Padding Base64 adalah karakter '=' yang ditentukan oleh standar RFC 4648, digunakan untuk membuat panjang keluaran Base64 menjadi kelipatan 4. Base64 memetakan 3 byte (24 bit) menjadi 4 karakter, namun ketika byte terakhir kurang dari 3, perlu diisi dengan =; jika tidak, dekoder tidak dapat menentukan jumlah byte asli di akhir.

Aturan padding: ① jumlah byte asli mod 3 = 0 → 0 tanda = di akhir; ② mod 3 = 1 → tambahkan 2 tanda = di akhir; ③ mod 3 = 2 → tambahkan 1 tanda = di akhir. Hasil mod 4 dari panjang string Base64 apa pun harus sama dengan jumlah = yang hilang.

Mengapa padding diperlukan: decoding Base64 memerlukan batas yang jelas. Padding memberi tahu dekoder berapa byte asli yang diwakili oleh = di akhir, menghindari ambiguitas. Tanpa padding, input 1 byte dan 2 byte dapat dikodekan menjadi string Base64 dengan panjang yang sama, membuat dekoder tidak dapat menentukan jumlah byte asli.

Penggunaan praktis: sebagian besar protokol (Data URL, MIME, JWT, file konfigurasi) mengikuti padding secara ketat; beberapa skenario (jalur URL, nama file, tautan pendek) menghilangkan padding untuk menghemat ruang. Alat ini mendukung konversi dua arah.

Kasus penggunaan

  • Memperbaiki kesalahan dekoding Base64 (seperti InvalidCharacterError atau panjang bukan kelipatan 4) dengan menambahkan = terlebih dahulu sebelum mendekode.
  • Saat memproses keluaran Base64 dari API, JWT, dan log, menghapus baris baru berlebih dan padding yang hilang.
  • Saat membuat Data URL, memastikan bagian Base64 benar-benar sesuai RFC 4648 untuk menghindari kegagalan dekode oleh browser atau alat pihak ketiga.
  • Memverifikasi dan menambahkan padding dengan cepat untuk skenario seperti token JWT, file konfigurasi, dan kredensial API.
  • Menghapus padding untuk URL, nama file, dan skenario lainnya guna menghemat karakter (dengan syarat protokol mendukung).
  • Saat mempelajari prinsip pengodean Base64, membandingkan hubungan antara jumlah byte input dan jumlah padding.

Cara Penggunaan

  1. Tempel atau masukkan string Base64 yang perlu diproses (dapat berisi padding atau tanpa padding, dengan baris baru atau tanpa).
  2. Pilih mode: tambah padding (tambahkan = di akhir) atau hapus padding (hapus = di akhir).
  3. Alat secara otomatis menghitung dan menampilkan hasil, menunjukkan jumlah karakter dan perubahan padding secara real-time.
  4. Salin hasil ke papan klip, atau unduh sebagai file .txt untuk pemrosesan selanjutnya.

Fitur

  • Perhitungan jumlah padding otomatis: menampilkan selisih jumlah = yang seharusnya dan yang sudah ada pada input saat ini secara real-time.
  • Mode tambah padding: mengisi string Base64 apa pun hingga panjang kelipatan 4, memperbaiki kesalahan panjang dengan satu klik.
  • Mode hapus padding: menghapus karakter = di akhir, cocok untuk skenario seperti URL dan nama file yang perlu menghemat karakter.
  • Abaikan otomatis baris baru dan spasi: Base64 dengan baris baru (dari email, keluaran JWT) juga dapat diproses dengan benar.
  • Penghitungan karakter real-time: menampilkan jumlah karakter input, jumlah karakter output, serta jumlah penambahan/pengurangan padding.
  • Salin/unduh satu klik: hasil dapat disalin ke papan klip atau diunduh sebagai file .txt.
  • Pemrosesan lokal di browser: semua perhitungan dilakukan di browser, konten asli tidak diunggah ke server mana pun.

Best Practices

Konfirmasi input benar-benar Base64 sebelum menambah padding

Alat ini hanya menambahkan = di akhir, tidak membersihkan karakter tidak valid. Spasi dan baris baru diabaikan otomatis, tetapi jika input tercampur dengan karakter ilegal lainnya (huruf beraksara lokal, alfabet non-Latin, simbol yang tidak diizinkan), dekoding tetap akan gagal. Disarankan menggunakan alat pembersih Base64 terlebih dahulu.

Data URL dan JWT harus ditambahkan padding

Data URL (RFC 2397) dan JWT (RFC 7519) keduanya menuntut padding secara ketat. Menghilangkan = pada sebagian besar implementasi akan memicu kesalahan dekoding atau hasil yang tidak konsisten; harap gunakan alat ini untuk menambah padding hingga kelipatan 4 sebelum mengirim.

URL/nama file dapat menghilangkan padding, tetapi harus menggunakan himpunan karakter URL-safe

Jika ingin meletakkan Base64 ke jalur URL, nama file, atau tautan pendek, menghilangkan padding saja tidak cukup; Anda juga harus mengganti + dan / dengan - dan _ (Base64URL). Hanya menghilangkan = masih berupa Base64 standar, dan + serta / tetap ilegal di URL.

Setelah menghilangkan padding muncul kesalahan 'panjang tidak benar' saat dekoding

Berarti alat target menuntut padding secara ketat. Beralihlah ke mode tambah padding, lalu coba dekode lagi. Jika masih gagal, kemungkinan tanda = yang bukan di akhir terhapus secara tidak sengaja saat menghilangkan padding (input itu sendiri sudah tidak valid).

Untuk file besar disarankan dipecah dulu sebelum diproses

Alat ini cocok untuk string Base64 tunggal. Jika berupa file berkode Base64 berukuran puluhan MB, disarankan menggunakan alat baris perintah (seperti openssl base64, perintah base64) atau memproses langsung di kode, untuk menghindari browser menjadi lambat atau macet.

Saat menjelaskan di materi pengajaran atau dokumentasi, sertakan perhitungan padding

Padding Base64 adalah poin yang paling membingungkan bagi pemula. Saat menjelaskan, pastikan untuk menyertakan tabel korelasi 'jumlah byte input mod 3 = sisa, sesuai dengan jumlah = yang perlu ditambahkan' (lihat referenceTables di halaman ini); jika tidak, siswa akan sulit memahami mengapa kadang perlu tambah 1, kadang tambah 2.

Pertanyaan Umum

Apa fungsi padding Base64?

Membuat panjang keluaran Base64 selalu kelipatan 4, memberi dekoder batas akhir yang jelas. Tanpa padding, input 1 byte dan 2 byte dapat dikodekan menjadi karakter dengan panjang yang sama, sehingga dekoder tidak dapat membedakan jumlah byte asli.

Mengapa panjang Base64 harus kelipatan 4?

Karena Base64 memetakan 3 byte menjadi 4 karakter, setiap kelompok memiliki rasio tetap 3→4. Ketika input bukan kelipatan 3, bagian akhir perlu diisi dengan = untuk melengkapi 4 karakter. Base64 apa pun yang bukan kelipatan 4 adalah tidak valid.

Bagaimana cara menghitung jumlah padding?

Rumusnya adalah (4 - jumlah byte input % 3) % 3, atau langsung lihat jumlah karakter Base64 mod 4: sisa 0 sesuai dengan 0 tanda =, sisa 2 sesuai dengan 1 tanda =, sisa 3 sesuai dengan 2 tanda =. Alat ini akan menghitungnya secara otomatis.

Bisakah padding dihilangkan?

Bisa dihilangkan, tetapi hanya bila protokol mendukung. Misalnya nama file, jalur URL, dan JSON Web Token pada beberapa implementasi menerima Base64 tanpa padding, tetapi Data URL, MIME, dan file konfigurasi biasanya menuntutnya secara ketat. Mode hapus padding pada alat ini hanya digunakan setelah mengonfirmasi protokol mendukung.

Bagaimana jika dekode Base64 menampilkan 'panjang bukan kelipatan 4'?

Beralih ke mode tambah padding alat ini, tambahkan = di akhir dengan satu klik. Jika setelah penambahan masih terjadi kesalahan, berarti input mengandung karakter ilegal atau terpotong; perlu menggunakan alat pembersih Base64 untuk memeriksa terlebih dahulu.

Apakah menambahkan padding akan mengubah byte asli?

Tidak. Penambahan padding hanya menambahkan = di akhir, tidak mengubah karakter di tengah, sehingga byte asli dipertahankan sepenuhnya. Byte setelah dekoding konsisten dengan data asli.

Apakah mendukung Base64 dengan baris baru atau spasi?

Mendukung. Alat ini akan otomatis menghapus baris baru, carriage return, dan spasi sebelum menghitung padding. Base64 multi-baris dari lampiran email, keluaran JWT, dan file konfigurasi dapat langsung ditempelkan.

Apakah padding Base64 dan Base64URL adalah hal yang sama?

Bukan. Padding Base64 adalah masalah karakter = di akhir; Base64URL adalah masalah himpunan karakter (menggunakan - sebagai pengganti +, _ sebagai pengganti /). Alat ini hanya memproses padding; untuk konversi URL-safe harap gunakan alat Base64URL khusus.

Apakah konten akan diunggah ke server?

Tidak. Semua perhitungan padding dilakukan secara lokal di browser, string Base64 asli tidak akan keluar dari perangkat Anda. Data sensitif seperti kredensial dan token dapat diproses dengan aman.

Pemecahan Masalah

Dekode menampilkan 'panjang bukan kelipatan 4'

Gunakan mode tambah padding alat ini untuk menambah = lalu dekode kembali. Jika setelah penambahan masih terjadi kesalahan, berarti input mengandung karakter ilegal; disarankan menggunakan alat pembersih Base64 untuk memeriksa terlebih dahulu.

Curiga input tercampur karakter tidak valid

Base64 standar hanya berisi A-Z a-z 0-9 + / =; karakter lain apa pun (huruf beraksara lokal, alfabet non-Latin, simbol selain spasi dan baris baru) adalah ilegal. Alat ini akan otomatis mengabaikan baris baru dan spasi, tetapi karakter ilegal lainnya perlu dibersihkan terlebih dahulu dengan alat pembersih Base64.

URL masih error setelah menghilangkan padding

Mungkin URL masih mengandung karakter yang perlu pengodean URL seperti ? & =, atau mengandung simbol dari himpunan karakter Base64 seperti + dan /. Menghilangkan padding tidak sama dengan URL-safe; perlu melakukan konversi Base64URL atau pengodean URL tambahan.

Tidak ada hasil setelah ditempel

Mungkin input sepenuhnya berisi karakter spasi (baris baru, spasi, tab). Alat ini akan mengabaikan karakter ini saat menghitung, tetapi input yang seluruhnya spasi tidak akan menghasilkan keluaran. Harap masukkan setidaknya satu karakter Base64.

Glosarium

Karakter padding =
Karakter padding di akhir Base64 yang ditentukan oleh standar RFC 4648, digunakan untuk menandai byte asli yang hilang. Padding yang valid hanya dapat muncul di akhir string.
Kelipatan 4
Panjang keluaran Base64 menurut standar RFC 4648 harus kelipatan 4; jika tidak, dianggap sebagai pengodean ilegal. Mode Base64 ketat akan langsung menimbulkan kesalahan saat dekoding.
Rumus perhitungan padding
Jumlah = yang dibutuhkan = (4 - jumlah byte input % 3) % 3; setara dengan melihat jumlah karakter Base64 mod 4, hasil 0/2/1 berturut-turut sesuai dengan 0/1/2 tanda =.
Base64 tanpa padding
Varian Base64 yang menghilangkan tanda = di akhir, umum ditemukan pada jalur URL dan nama file, namun secara ketat tidak sesuai standar RFC 4648 dan dapat gagal didekode pada protokol tertentu.
Himpunan karakter Base64
A-Z, a-z, 0-9, +, / berjumlah total 64 karakter, ditambah = untuk padding. Karakter lain apa pun tidak valid dan perlu dibersihkan terlebih dahulu dengan alat pembersih Base64.

Tabel cepat aturan padding Base64

Hubungan antara jumlah byte input Base64 dan jumlah padding = di akhir.

Jumlah byte inputmod 3Jumlah karakter Base64Jumlah padding =Contoh (input→output)
3n04n0ABC → QUJD
3n+114n+22AB → QUI=
3n+224n+31A → QQ==

Persyaratan padding pada protokol umum

Berbagai protokol memiliki persyaratan berbeda terhadap padding =; menghilangkannya secara keliru akan menyebabkan kegagalan dekoding.

Skenario penggunaanApakah padding diperlukanKegunaan umum
Data URL (RFC 2397)Disarankan (kompatibilitas)HTML / CSS / penyematan gambar
JWT (RFC 7519)Diperlukan (ketat)OAuth / otentikasi API
MIME (RFC 2045)DiperlukanPengodean lampiran email
Jalur URL / nama fileOpsional (sering dihilangkan)Tautan pendek / kunci cache
File konfigurasi (YAML / JSON)DiperlukanPenyimpanan kredensial dan tanda tangan

Authoritative References