Encoder dan Decoder Base85

Base85 memadatkan empat byte menjadi lima karakter ASCII - lebih padat daripada rasio 3-ke-4 milik Base64 - dengan memakai alfabet 85 karakter alih-alih 64. Varian Ascii85 dari Adobe ada di dalam setiap file PostScript dan PDF; varian Z85 (ZeroMQ) yang lebih baru menghindari karakter yang merusak string C dan XML. Tool ini meng-encode dan mendecode keduanya, dengan delimiter opsional.

Cara mengonversi Base85

  1. 1

    Pilih varian

    Ascii85 untuk aset PDF/PostScript; Z85 untuk kode sumber dan protokol jaringan.

  2. 2

    Tempel teks atau upload file

    Arah encode menerima byte mentah; arah decode menerima string Base85.

  3. 3

    Encoder memecah per 4 byte

    Setiap blok 4-byte menjadi string Base85 5-karakter. Blok terakhir diberi padding dan dipotong.

  4. 4

    Salin hasil

    Ascii85 opsional dibungkus delimiter `<~` dan `~>`; Z85 tanpa delimiter.

Perbandingan overhead ukuran

Pengodean Karakter per 4 byte Overhead vs biner
Hex 8 +100%
Base64 5.33 (dibulatkan ke atas menjadi 8 dengan padding) +37%
Base85 5 +25%
Biner mentah 4 0

Jadi 1 MB biner menjadi 1.25 MB dalam Base85, 1.33 MB dalam Base64, 2 MB dalam hex.

Alfabet Ascii85 vs Z85

Ascii85 (RFC 1924 / Adobe): karakter ! hingga u (33-117 dalam ASCII), plus z sebagai shortcut untuk 4 byte nol. Digunakan dalam stream PostScript dan PDF, dibungkus sebagai <~...~>.

Z85 (ZeroMQ): subset yang menghindari karakter quote dan escape:

0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#

Aman disematkan dalam JSON, XML, string C, dan kode sumber tanpa escaping.

Cara matematikanya bekerja

Setiap 4 byte dibaca sebagai integer 32-bit big-endian N. Lima karakter output adalah digit N dalam basis 85, dimulai dari digit paling signifikan. 85^5 = 4 437 053 125 lebih besar dari 2^32, sehingga 4 byte selalu muat dalam 5 karakter.

Kapan Ascii85 penting

Buka PDF apa pun di editor teks dan cari ASCII85Decode - Adobe memakainya sebagai filter untuk gambar dan font tertanam yang perlu bertahan dalam transmisi 7-bit (sistem lama bergaya fax). Z85 banyak digunakan dalam kunci autentikasi ZeroMQ CURVE.

Kasus khusus

  • Blok 4-byte nol semua - Ascii85 meng-encode-nya sebagai karakter tunggal z alih-alih !!!!!.
  • Blok 4-byte spasi semua - Beberapa varian memakai y untuk empat spasi, yang lain tidak.
  • Blok parsial terakhir - Diberi padding byte nol, dan jumlah karakter output yang sesuai dipotong di akhir.

Pertanyaan yang Sering Diajukan

Output lebih kecil, ya. Kompatibel universal, tidak. Base85 berisi karakter seperti <, >, &, " (dalam Ascii85) yang perlu escaping di XML, JSON, dan URL. Z85 menghindari ini tetapi sebagian besar tooling berbicara Base64 secara native.

Ascii85 jika Anda bekerja dengan file PostScript atau PDF. Z85 untuk kode sumber, file konfigurasi, dan protokol jaringan. Pengodean IPv6 RFC 1924 adalah penetapan berbeda dari 85 karakter yang sama dan jarang dipakai dalam praktik.

Tidak. Keduanya memakai alfabet berbeda. Mendecode Ascii85 dengan tabel Z85 akan menghasilkan sampah. Pilih satu sebelum encoding dan tetap gunakan itu.

Untuk Adobe Ascii85 dalam stream PDF atau PostScript, ya - delimiter menandai bagian yang dikodekan. Untuk penggunaan mandiri dan semua output Z85, delimiter tidak diperlukan.

Alat Terkait