Base85 Kodlayıcı ve Çözücü

Base85 dört byte’ı beş ASCII karakterine sıkıştırır; 64 yerine 85 karakterlik alfabe kullandığı için Base64’ün 3-e-4 oranından daha yoğundur. Adobe’nin Ascii85 varyantı her PostScript ve PDF dosyasının içinde bulunur; daha yeni Z85 (ZeroMQ) varyantı C stringleri ve XML içinde bozan karakterlerden kaçınır. Bu araç ikisini de isteğe bağlı sınırlayıcılarla kodlar ve çözer.

Base85 nasıl dönüştürülür

  1. 1

    Varyantı seçin

    PDF/PostScript varlıkları için Ascii85; kaynak kodu ve ağ protokolleri için Z85.

  2. 2

    Metin yapıştırın veya dosya yükleyin

    Encode yönü ham byte alır; decode yönü Base85 stringi alır.

  3. 3

    Kodlayıcı 4 byte'lık bloklara böler

    Her 4-byte blok 5 karakterlik Base85 stringine dönüşür. Son blok padding alır ve kırpılır.

  4. 4

    Sonucu kopyalayın

    Ascii85 isteğe bağlı olarak `<~` ve `~>` sınırlayıcılarıyla sarılır; Z85 sınırlayıcısızdır.

Boyut ek yükü karşılaştırması

Kodlama 4 byte başına karakter İkiliye göre ek yük
Hex 8 +100%
Base64 5.33 (padding ile 8’e yuvarlanır) +37%
Base85 5 +25%
Ham ikili 4 0

Böylece 1 MB ikili veri Base85’te 1.25 MB, Base64’te 1.33 MB, hex’te 2 MB olur.

Ascii85 ve Z85 alfabeleri

Ascii85 (RFC 1924 / Adobe): ASCII’de ! ile u arasındaki karakterler (33-117), ayrıca 4 sıfır byte için kısayol olarak z. PostScript ve PDF stream’lerinde kullanılır, <~...~> olarak sarılır.

Z85 (ZeroMQ): Tırnak karakterlerinden ve escape’lerden kaçınan bir alt küme:

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

JSON, XML, C stringleri ve kaynak kod içine escape gerektirmeden gömmek için güvenlidir.

Matematik nasıl çalışır

Her 4 byte big-endian 32-bit tam sayı N olarak okunur. 5 çıktı karakteri, N değerinin 85 tabanındaki rakamlarıdır; en anlamlı olan önce gelir. 85^5 = 4 437 053 125, 2^32 değerinden büyüktür; bu yüzden 4 byte her zaman 5 karaktere sığar.

Ascii85 ne zaman önemlidir

Herhangi bir PDF’yi metin editöründe açıp ASCII85Decode arayın; Adobe bunu 7-bit taşıma yolundan (eski faks tarzı sistemler) sağ çıkması gereken gömülü görüntüler ve fontlar için filtre olarak kullanır. Z85, ZeroMQ CURVE kimlik doğrulama anahtarlarında yaygın kullanılır.

Özel durumlar

  • Tamamı sıfır 4-byte blok — Ascii85 bunu !!!!! yerine tek z karakteri olarak kodlar.
  • Tamamı boşluk 4-byte blok — Bazı varyantlar dört boşluk için y kullanır, bazıları kullanmaz.
  • Son kısmi blok — Sıfır byte’larla tamamlanır ve karşılık gelen çıktı karakteri sayısı sonda kırpılır.

Sık Sorulan Sorular

Daha küçük çıktı, evet. Evrensel uyumluluk, hayır. Base85, XML, JSON ve URL’lerde escape gerektiren <, >, &, " (Ascii85 içinde) gibi karakterler içerir. Z85 bundan kaçınır, ama çoğu araç Base64’ü doğal olarak konuşur.

PostScript veya PDF dosyalarıyla çalışıyorsanız Ascii85. Kaynak kodu, config dosyaları ve ağ protokolleri için Z85. RFC 1924 IPv6 kodlaması aynı 85 karakterin farklı bir atamasıdır ve pratikte nadiren kullanılır.

Hayır. Farklı alfabeler kullanırlar. Ascii85’i Z85 tablosuyla çözmek çöp üretir. Kodlamadan önce birini seçin ve ona sadık kalın.

PDF veya PostScript stream’lerinde Adobe Ascii85 için evet; kodlanmış bölgeyi işaretlerler. Bağımsız kullanımda ve tüm Z85 çıktılarında sınırlayıcı gerekmez.

İlgili Araçlar