0

Décodé

Ascii85

Encodé

Ascii85
Variante

À propos d'Ascii85

Ascii85 est un schéma de codage utilisant des caractères ASCII imprimables sur 7 bits. Il est également appelé Base85.

Dans Ascii85, les données sont divisées en groupes de 4 octets et converties en 5 caractères ASCII.

Il existe diverses variantes d'Ascii85. DenCode prend en charge les trois types d'Ascii85 suivants. L'original est btoa, suivi plus tard par Adobe et Z85.

Aperçu
Z85Utilisé dans ZeroMQ. Conçu pour éviter d'utiliser des caractères nécessitant un échappement tels que "\" (barre oblique inverse) et "'" (apostrophe).
AdobeUtilisé pour encoder des images, etc. dans les fichiers PostScript et PDF (Portable Document Format) d'Adobe. Entouré de "<~" et "~>".
btoaFormat de la commande btoa sous UNIX. Utilisé dans le passé pour l'échange de données binaires, mais n'est plus courant aujourd'hui. Entouré des lignes "xbtoa Begin" et "xbtoa End".

Les caractères ASCII utilisés dans Ascii85 sont les suivants. Une valeur de 4 octets est traitée comme un entier non signé big-endian, calculée pour chaque chiffre en base 85 (5 chiffres), et le résultat de la conversion Ascii85 est déterminé sur la base des caractères ASCII suivants.

Caractères ASCII
Z850123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#
Adobe!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu
btoa!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu
(À l'origine, c'était les caractères de " " (espace) à "t", mais comme certains clients de messagerie supprimaient les espaces de fin, ils ont été remplacés plus tard par les caractères de "!" à "u" excluant l'espace.)

Par exemple, la conversion de "Hello" en Ascii85 donne ce qui suit.

1. Diviser par 4 octets. S'il y a moins de 4 octets, remplir la fin avec "00".

48656C6C(16) 6F000000(16)  (Hell o)

2. Traiter chaque bloc de 4 octets comme un entier non signé big-endian et convertir cette valeur en chaque chiffre de la base 85.

48656C6C(16)
= 1214606444(10)
= 23 * 854 + 22 * 853 + 66 * 852 + 52 * 85 + 49
6F000000(16)
= 1862270976(10)
= 35 * 854 + 57 * 853 + 33 * 852 + 65 * 85 + 26

3. Convertir chaque chiffre de la base 85 en caractère ASCII. Si la fin a été remplie avec "00", exclure le remplissage pour Adobe/Z85.

23226652493557336526
Z85nm=QNzV
Adobe87cURDZ
btoa87cURDZBb;

4. Concaténer tous les caractères pour obtenir le résultat de la conversion Ascii85. Adobe entoure avec "<~" & "~>" et ajoute un saut de ligne tous les 80 caractères. btoa entoure avec "xbtoa Begin" & "xbtoa End" (incluant la longueur des données et la somme de contrôle) et ajoute un saut de ligne tous les 78 caractères.

Résultat de la conversion
Z85nm=QNzV
Adobe<~87cURDZ~>
btoaxbtoa Begin
87cURDZBb;
xbtoa End N 5 5 E 42 S 1f9 R a9f

De plus, plusieurs formes raccourcies sont définies.

Forme raccourcie
Z85Aucune
Adobe00000000(16) -> z
btoa00000000(16) -> z
20202020(16) -> y (btoa v4.2 ou ultérieur)