Outil pour décoder/coder en ASCII85 (aussi appelé Base85) est un codage similaire à base64, utilisant 5 caractères ASCII pour représenter 4 octets. ASCII 85 est utilisé dans les fichiers PDF par exemple.
Codage ASCII85 - dCode
Catégorie(s) : Codage de Caractères
dCode est gratuit et ses outils sont une aide précieuse dans les jeux, les maths, les énigmes, les géocaches, et les problèmes à résoudre au quotidien !
Une suggestion ? un problème ? une idée ? Écrire à dCode !
L'ASCII85 est un encodage de caractères utilisant 85 symboles ASCII. Popularisé par le format PDF, il permet un encodage légèrement moins volumineux que la Base64.
Cet encodage est parfois nommé Base85 mais il ne s'agit pas d'un changement de base arithmétique en base 85.
Le chiffrement ASCII85 utilise le code binaire du texte (qui dépend de l'encodage utilisé : ASCII, Unicode etc.)
Exemple : Soit le message DCODE encodé 01000100 01000011 01001111 01000100 01000101 (codage ASCII)
Le binaire est découpé tous les 32 bits (soit 4 octets)
Exemple : 01000100010000110100111101000100 (base2) = 1145261892 (base10) et 01000101000000000000000000000000 (base2) = 1157627904 (base10) (complété avec 3 caractères nuls = 24 fois 0 pour avoir 32 bits)
Les nombres obtenus sont convertis en base 85.
Exemple : 1145261892 (base10) = [21,79,73,64,27] (base85) et 1157627904 (base10) = [22,15,0,26,69] (base85)
Chaque valeur en base 85 est alors remplacée par un caractère ASCII de code (valeur+33)
Exemple : 21 => ASCII(54) = 6, 79 => ASCII(112) = p, 76 => ASCII(106) = j, etc. donc l'encodage final est : 6pja<70
Il peut y avoir des caractères finaux null ASCII(0), qui peuvent être supprimés (ils correspondent aux caractères nuls ajoutées à l'étape précédente)
Le déchiffrement débute par une découpe du message ASCII85 par groupe de 5 caractères. (Si le dernier tuple ne fait pas 5 caractères, compléter alors avec le caractère u)
Exemple : Le message 6pja<70 est découpé en 6pja< et 70 (qui devient 70uuu)
Pour chaque groupe de 5 caractères, récupérer la valeur ASCII et y soustraire 33.
Exemple : 6pja< = 54,112,106,97,60 (code ASCII), -33 => 21,79,73,64,27
Exemple : 70uuu = 55,48,117,117,117 (code ASCII), -33 => 22,15,84,84,84
Chaque groupe de 5 nombres est alors considéré comme un seul nombre écrit en base 85, à convertir en base 2.
Exemple : [21,79,73,64,27] (base85) = 01000100010000110100111101000100 (base2)
Exemple : [22,15,84,84,84] (base85) = 01000101000010010101011000000101 (base2)
Le message clair est alors le code binaire encodé dans le codage souhaité (ASCII, Unicode, etc.), supprimer à la fin autant de caractères que ceux qui ont été ajoutés à l'étape de complétion des tuples).
Exemple : 01000100 01000011 01001111 01000100 01000101 (00001001 01010110 00000101) = DCODE (codage ASCII 8bit).
La table d'encodage utilisée par l'ASCII-85 est la table ASCII (commençant au premier caractère imprimable)
Index | Asc85 | Index | Asc85 | Index | Asc85 | Index | Asc85 | Index | Asc85 |
---|---|---|---|---|---|---|---|---|---|
0 | ! | 1 | " | 2 | # | 3 | $ | 4 | % |
5 | & | 6 | ' | 7 | ( | 8 | ) | 9 | * |
10 | + | 11 | , | 12 | - | 13 | . | 14 | / |
15 | 0 | 16 | 1 | 17 | 2 | 18 | 3 | 19 | 4 |
20 | 5 | 21 | 6 | 22 | 7 | 23 | 8 | 24 | 9 |
25 | : | 26 | ; | 27 | < | 28 | = | 29 | > |
30 | ? | 31 | @ | 32 | A | 33 | B | 34 | C |
35 | D | 36 | E | 37 | F | 38 | G | 39 | H |
40 | I | 41 | J | 42 | K | 43 | L | 44 | M |
45 | N | 46 | O | 47 | P | 48 | Q | 49 | R |
50 | S | 51 | T | 52 | U | 53 | V | 54 | W |
55 | X | 56 | Y | 57 | Z | 58 | [ | 59 | \ |
60 | ] | 61 | ^ | 62 | _ | 63 | ` | 64 | a |
65 | b | 66 | c | 67 | d | 68 | e | 69 | f |
70 | g | 71 | h | 72 | i | 73 | j | 74 | k |
75 | l | 76 | m | 77 | n | 78 | o | 79 | p |
80 | q | 81 | r | 82 | s | 83 | t | 84 | u |
Dans la variante IPv6, l'alphabet utilisé est 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~
Dans la variante ZeroMQ, l'alphabet utilisé est 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#
Le message utilise uniquement les caractères ASCII de codes 33 (!) à 117 (u) ainsi que parfois des espaces, retours à la ligne, mais aussi parfois les caractères y et z.
Le message commence par <~ et fini par ~> (dans le cas de la variante Adobe)
Le message commence par xbtoa Begin et finit par xbtoa End (dans le cas de la variante BTOA)
Avec les variantes IPv6 ou ZeroMQ les caractères sont différents (mais il n'y a pas de préfixe)
Adobe Base85 est utilisé dans les PDF et commence par <~ et fini par ~> et autorise l'exception z.
Afin de stocker des IPv6 plus courtes, la RFC 1924 a proposé une représentation compacte utilisant la base mathématique 85 et les symboles 0–9, A–Z, a–z, !#$%&()*+-;<=>?@^_`{|}~.
Cette page ne fait que réutiliser cet alphabet et l'ASCII85 ne permet pas un encodage des IPv6 tels que prévus par la RFC.
ZeroMQ est outil de messagerie qui utilise la Base85 dans une fonction nommée zmq_z85_encode(), les 85 symboles utilisés sont : 0-9, a-z, A-Z, .-:+=^!/*?&<>()[]{}@%$#
La fonction de conversion de ZeroMQ est différente de l'ASCII85, cette page de fait qu'utiliser l'alphabet.
Le caractère z est parfois utilisé (alors qu'il n'est pas dans la liste des caractères valides) pour indiquer un groupe de 0, ce qui a pour effet de diminuer la taille du message codé. (Utilisé par BTOA et Adobe)
Le caractère y est parfois utilisé pour indiquer un groupe d'espaces (Non utilisé avec Adobe)
Le code ASCII85 a été créé vers 1990 par Paul E. Rutter.
dCode se réserve la propriété du code source pour "Codage ASCII85". Sauf code licence open source explicite (indiqué Creative Commons / gratuit), l'algorithme pour "Codage ASCII85", l'applet ou snippet (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou les fonctions liées à "Codage ASCII85" (calculer, convertir, résoudre, décrypter / encrypter, déchiffrer / chiffrer, décoder / encoder, traduire) codés en langage informatique (Python, Java, C#, PHP, Javascript, Matlab, etc.) ou les données, en téléchargement, script, ou les accès API à "Codage ASCII85" ne sont pas publics, idem pour un usage hors ligne, PC, mobile, tablette, appli iPhone ou Android !
Rappel : dCode est gratuit.
Le copier-coller de la page "Codage ASCII85" ou de ses résultats est autorisée (même pour un usage commercial) tant que vous créditez dCode !
L'exportation des résultats sous forme de fichier .csv ou .txt est gratuite en cliquant sur l'icone export
Citer comme source bibliographique :
Codage ASCII85 sur dCode.fr [site web en ligne], consulté le 19/12/2024,