Encodeur et décodeur Base85

Base85 compresse quatre octets en cinq caractères ASCII — plus dense que le ratio 3 pour 4 de Base64 — en utilisant un alphabet de 85 caractères au lieu de 64. La variante Ascii85 d’Adobe est intégrée dans chaque fichier PostScript et PDF ; la variante Z85 (ZeroMQ) évite les caractères qui posent problème dans les chaînes C et XML. Cet outil encode et décode les deux, avec des délimiteurs optionnels.

Comment convertir Base85

  1. 1

    Choisissez la variante

    Ascii85 pour les actifs PDF/PostScript ; Z85 pour le code source et les protocoles réseau.

  2. 2

    Collez le texte ou téléchargez un fichier

    La direction d'encodage prend des octets bruts ; la direction de décodage prend une chaîne Base85.

  3. 3

    L'encodeur segmente par 4 octets

    Chaque bloc de 4 octets devient une chaîne Base85 de 5 caractères. Le dernier bloc est complété et tronqué.

  4. 4

    Copiez le résultat

    Ascii85 éventuellement entouré de délimiteurs `<~` et `~>` ; Z85 sans délimiteurs.

Comparaison de la surcharge de taille

Encodage Caractères par 4 octets Surcharge par rapport au binaire
Hex 8 +100%
Base64 5.33 (arrondi à 8 avec remplissage) +37%
Base85 5 +25%
Binaire brut 4 0

Ainsi, 1 Mo de binaire devient 1,25 Mo en Base85, 1,33 Mo en Base64, 2 Mo en hex.

Alphabets Ascii85 vs Z85

Ascii85 (RFC 1924 / Adobe) : caractères ! à u (33-117 en ASCII), plus z comme raccourci pour 4 octets nuls. Utilisé dans les flux PostScript et PDF, enveloppé comme <~...~>.

Z85 (ZeroMQ) : un sous-ensemble qui évite les guillemets et les caractères d’échappement :

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

Sûr à intégrer dans JSON, XML, chaînes C et code source sans échappement.

Comment fonctionne le calcul

Chaque 4 octets sont lus comme un entier 32 bits en big-endian N. Les 5 caractères de sortie sont les chiffres de N en base 85, le plus significatif en premier. 85^5 = 4 437 053 125 ce qui est supérieur à 2^32, donc 4 octets tiennent toujours dans 5 caractères.

Quand Ascii85 est important

Ouvrez n’importe quel PDF dans un éditeur de texte et recherchez ASCII85Decode — Adobe l’utilise comme filtre pour les images et polices intégrées qui doivent survivre à un transport 7 bits (anciens systèmes de fax). Z85 est largement utilisé dans les clés d’authentification CURVE de ZeroMQ.

Cas spéciaux

  • Bloc de 4 octets tous nuls — Ascii85 l’encode comme le caractère unique z au lieu de !!!!!.
  • Bloc de 4 octets tous espaces — Certaines variantes utilisent y pour quatre espaces, d’autres non.
  • Dernier bloc partiel — Complété par des octets nuls, et le nombre correspondant de caractères de sortie est tronqué à la fin.

Questions fréquentes

Sortie plus petite, oui. Universellement compatible, non. Base85 contient des caractères comme <, >, &, " (dans Ascii85) qui nécessitent un échappement dans XML, JSON et les URL. Z85 évite cela mais la plupart des outils parlent nativement Base64.

Ascii85 si vous travaillez avec des fichiers PostScript ou PDF. Z85 pour le code source, les fichiers de configuration et les protocoles réseau. L’encodage IPv6 RFC 1924 est une attribution différente des mêmes 85 caractères et est rarement utilisé en pratique.

Non. Ils utilisent des alphabets différents. Décoder Ascii85 avec une table Z85 produira des données incohérentes. Choisissez-en un avant d’encoder et tenez-vous-en à celui-ci.

Pour Adobe Ascii85 dans les flux PDF ou PostScript, oui — ils marquent la région encodée. Pour une utilisation autonome et toute sortie Z85, aucun délimiteur n’est nécessaire.

Outils similaires