Encodeur et Décodeur Base85 | Ascii85 et Z85 réunis
Base85 condense quatre octets en cinq caractères imprimables, soit une surcharge d'environ 25 % au lieu des 33 % de Base64. Cet outil bascule entre l'Ascii85 d'Adobe et le Z85 de ZeroMQ sur un seul écran, transformant votre saisie en sortie encodée ou décodée et en signalant tout caractère intrus.
💡 À propos de cet outil
Si vous avez déjà ouvert un fichier PDF ou PostScript, vous avez sans doute aperçu des images et des polices stockées sous forme de longues chaînes entourées de <~ ... ~>. C'est l'Ascii85 d'Adobe. En travaillant avec ZeroMQ, vous rencontrez plutôt le Z85, une autre variante de Base85 employée pour les clés CURVE et les certificats. Le casse-tête classique « c'est marqué base85 mais la sortie ne correspond pas » vient presque toujours d'une confusion entre ces deux variantes.
Cet outil garde le sens (encoder/décoder) et la variante (Ascii85/Z85) sur des boutons distincts, si bien que l'analyse d'un bloc extrait d'un PDF et le traitement d'une clé ZeroMQ se font au même endroit. La saisie est convertie en octets UTF-8 dans votre navigateur avant traitement, et le décodeur Ascii85 développe le raccourci z qui représente quatre octets nuls. Lorsqu'un caractère erroné se glisse à cause d'un mauvais copier-coller, l'outil le nomme au lieu de produire silencieusement n'importe quoi.
🧐 Questions fréquentes
Quelle est la différence entre Base85, Ascii85 et Z85 ?
Base85 est le terme générique pour « représenter des données avec 85 caractères ». Ascii85 est l'implémentation concrète d'Adobe pour PostScript et PDF ; elle utilise les délimiteurs <~...~> et réduit quatre octets nuls à un seul z. Z85 est l'implémentation de ZeroMQ, qui choisit un jeu de caractères sans guillemets ni barres obliques inverses afin de s'intégrer proprement dans le code source.
Combien Base85 est-il plus compact que Base64 ? Base85 transforme 4 octets en 5 caractères, soit une augmentation d'environ 25 %. Base64 transforme 3 octets en 4 caractères, soit environ 33 %. Pour les mêmes données binaires, Base85 produit moins de caractères.
Pourquoi Z85 rejette-t-il une entrée qui n'est pas un multiple de cinq caractères ? Le décodage Z85 associe chaque groupe de cinq caractères à quatre octets ; une longueur qui n'est pas un multiple de cinq ne peut donc pas être reconstruite. Côté encodage, les données doivent être complétées jusqu'à un multiple de quatre octets ; cet outil ajoute automatiquement le complément avant de produire le Z85.
Ai-je besoin des marqueurs <~ ~> ou du z pour décoder l'Ascii85 ?
Les délimiteurs <~ et ~> sont facultatifs pour le décodage ici. Le z est un raccourci pour quatre octets nuls, vous pouvez donc le coller tel quel et il sera développé correctement.
📚 Le saviez-vous : Base85 et les patchs binaires
Au-delà de l'intégration d'images et de polices dans les PDF et les fichiers PostScript, l'Ascii85 d'Adobe sert aussi à Git pour stocker les correctifs binaires : la commande git diff --binary produit un bloc en Ascii85. C'est une manière volontairement sobre, vieille de plusieurs décennies, de faire transiter des données binaires par un canal qui n'accepte que du texte. Ainsi, la prochaine fois qu'une revue de code fait apparaître un mur de caractères commençant par <~, vous saurez qu'il ne s'agit pas d'une corruption mais d'un fichier binaire rendu en texte.