Base85-Encoder/Decoder

Base85 komprimiert vier Bytes in fünf ASCII-Zeichen, dichter als das 3-zu-4-Verhältnis von Base64, indem es ein Alphabet mit 85 Zeichen anstelle von 64 verwendet. Dieses Werkzeug implementiert die Ascii85-Variante von Adobe, die in PostScript- und PDF-Dateien steckt. Der Encoder umschließt die Ausgabe immer mit den Trennzeichen <~ und ~>; der Decoder akzeptiert Eingaben mit oder ohne sie.

So konvertieren Sie Base85 (Ascii85)

  1. 1

    Kodieren oder Dekodieren wählen

    Kodieren wandelt rohe Bytes in Ascii85 um; Dekodieren wandelt eine Ascii85-Zeichenfolge zurück in Bytes.

  2. 2

    Text einfügen

    Fügen Sie die zu kodierenden Bytes oder die zu dekodierende Ascii85-Zeichenfolge in das Eingabefeld ein.

  3. 3

    Der Encoder teilt in Blöcke von 4 Bytes

    Jeder 4-Byte-Block wird zu einer Base85-Zeichenfolge mit 5 Zeichen. Der letzte Block wird aufgefüllt und gekürzt.

  4. 4

    Ergebnis kopieren

    Die Ascii85-Ausgabe ist in die Trennzeichen `<~` und `~>` eingebettet. Fügen Sie sie erneut ein, um sie zu dekodieren; die Trennzeichen werden automatisch entfernt.

Vergleich des Größen-Overheads

Kodierung Zeichen pro 4 Bytes Overhead gegenüber binär
Hex 8 +100%
Base64 5,33 (mit Padding auf 8 gerundet) +37%
Base85 5 +25%
Rohdaten binär 4 0

So wird 1 MB Binär zu 1,25 MB in Base85, 1,33 MB in Base64 und 2 MB in Hex.

Das Ascii85-Alphabet

Ascii85 (Adobe): Zeichen ! bis u (33-117 in ASCII), plus z als Abkürzung für 4 Null-Bytes. Es ist die Standardkodierung in PostScript- und PDF-Streams, umschlossen als <~...~>.

Z85 (ZeroMQ) und das RFC-1924-Alphabet für IPv6 sind andere Zuordnungen derselben 85-Zeichen-Idee. Dieses Werkzeug implementiert sie nicht; damit kodierte Zeichenfolgen würden hier falsch dekodiert.

Wie die Mathematik funktioniert

Jeweils 4 Bytes werden als Big-Endian-32-Bit-Ganzzahl N gelesen. Die 5 Ausgabezeichen sind die Ziffern von N zur Basis 85, beginnend mit der höchstwertigen. 85^5 = 4 437 053 125 ist größer als 2^32, sodass 4 Bytes immer in 5 Zeichen passen.

Wann Ascii85 wichtig ist

Öffnen Sie eine PDF in einem Texteditor und suchen Sie nach ASCII85Decode. Adobe verwendet es als Filter für eingebettete Bilder und Schriftarten, die einen 7-Bit-Transport überstehen müssen (alte Faxsysteme). Dieselbe Kodierung steckt in vielen PostScript-Dateien und in E-Mail-sicheren Binärtransporten.

Sonderfälle

  • 4-Byte-Block aus lauter Nullen: Ascii85 kodiert ihn als einzelnes Zeichen z statt !!!!!.
  • Letzter Teilblock: Er wird mit Null-Bytes aufgefüllt und die entsprechende Anzahl an Ausgabezeichen am Ende gekürzt.

Häufig gestellte Fragen

Kleinere Ausgabe, ja. Universal kompatibel, nein. Ascii85 enthält Zeichen wie <, >, &, ", die in XML, JSON und URLs escaped werden müssen. Die meisten Werkzeuge sprechen nativ Base64.

In PostScript- und PDF-Streams, wo die kodierte Region mit <~ und ~> markiert wird. PDF-Viewer und Editoren verarbeiten diese Kodierung automatisch.

Nein. Es implementiert nur Adobe Ascii85. Z85 (ZeroMQ) und das RFC-1924-Alphabet für IPv6 verwenden andere Zuordnungen der 85 Zeichen; damit kodierte Zeichenfolgen würden hier falsch dekodiert.

Sie markieren die kodierte Region gemäß der Ascii85-Konvention. Der Encoder fügt sie immer hinzu; der Decoder entfernt sie automatisch, wenn sie vorhanden sind. Sie können auch eine Zeichenfolge ohne sie einfügen.

Verwandte Tools

Tool in anderen Sprachen verfügbar