Outil pour coder avec la Base45, codage utilisant 45 caractères ASCII, qui s'est fait connaitre depuis son utilisation dans le passe/certificat sanitaire européen.
Codage Base45 - 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 !
Le codage Base45 consiste a écrire les données en base 45 et utiliser la liste de symboles suivante 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./: qui correpond aux 45 characters utilisables dans un QR-code en mode alphanumérique soit la table de correspondance :
Index | Caractère Base45 |
---|---|
0 | 0 |
1 | 1 |
2 | 2 |
3 | 3 |
4 | 4 |
5 | 5 |
6 | 6 |
7 | 7 |
8 | 8 |
9 | 9 |
10 | A |
11 | B |
12 | C |
13 | D |
14 | E |
15 | F |
16 | G |
17 | H |
18 | I |
19 | J |
20 | K |
21 | L |
22 | M |
23 | N |
24 | O |
25 | P |
26 | Q |
27 | R |
28 | S |
29 | T |
30 | U |
31 | V |
32 | W |
33 | X |
34 | Y |
35 | Z |
36 | |
37 | $ |
38 | % |
39 | * |
40 | + |
41 | - |
42 | . |
43 | / |
44 | : |
Le codage commence par découper les données à encoder de gauche à droite par groupe de 2 octets. Si les données ont un nombre impair d'octet, le dernier groupe est de taille 1 octet.
Exemple : Coder les 3 caractères B45, de code ASCII [66,52,53], qui sont alors découpés [66,52],[53]
Chaque couple de 2 octets $ [a, b] $ est interprétée comme un nombre en base $ 256 $ tel que $ n = (a \times 256) + b $ (en base 10) qui peut alors se convertir en base 45 via un triplet $ [c,d,e] $ tel que $ n = c + (d \times 45) + (e \times 45^2) $. Les caractères de la table de correspondance pour les valeurs [c,d,e] sont notés (dans cet ordre) comme texte codé.
Tout éventuel dernier octet unique $ a $ se trouvant à la fin des données est aussi interprété comme un nombre en base 256 et converti en un couple $ [b,c] $ tel que $ a = b + (45 \times c) $. Les caractères de la table de correspondance pour les valeurs [b,c] sont notés (dans cet ordre) comme texte codé.
Exemple : Le couple [66,52] correspond au nombre 66 * 256 + 52 = 16948 et 16948 = 28 + 16*45 + 8*45^2, soit le triplet [28,16,8] ou les caractères S,G,8 en base45
L'octet restant [53] s'écrit en base 45 ainsi : 53 = 1 * 45 + 8, soit le couple [1,8] ou les caractères 1,8 en base45. Le codage complet de B45 en base45 est SG881
Pour toute chaine écrite en Base45, commencer par convertir les caractères en valeurs numériques (selon le tableau de correspondance).
Exemple : Décoder SG881, soit les valeurs [28,16,8,8,1]
Découper les valeurs en groupes de 3, de gauche à droite. Si le dernier groupe de 3 n'est pas complet, ajouter des 0 (zéro) à la fin.
Exemple : [28,16,8,8,1] se découpe [28,16,8],[8,1,0]
Interpréter chaque groupe [c,d,e] comme un nombre en base 45 ainsi : $ n = c + (d \times 45) + (e \times 45^2) $ et noter les valeurs $ n $ obtenues
Exemple : [28,16,8],[8,1,0] est converti en [16948],[53]
Convertir chaque nombre en base 256 (donc en octets)
Exemple : 16948 = 66 * 256 + 52 soit [66,52] et 53 reste [53] en base 256
Le message décodé est l'ensemble des octets. Il peut être interprété en code ASCII (ou Unicode)
Exemple : [66,52,53] correspond aux 3 caractères ASCII B,4,5 (texte original)
Base-45 utilise les 36 caractères alphanumériques majuscules 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ complété des caractères (espace)', $ (dollar), % (pourcent), * (astérisque), + (plus), - (moins/tiret), . (point), / (slash) et : (deux points).
Base-45 est optimisé pour transmettre des données avec le mode alphanumérique des QR-codes.
Il a été utilisé dans les certificats de vaccins COVID-19 et pass sanitaires de l'union européenne.
dCode se réserve la propriété du code source pour "Codage Base45". Tout algorithme pour "Codage Base45", applet ou snippet ou script (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou toutes fonctions liées à "Codage Base45" (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 toute base de données, ou accès API à "Codage Base45" ou tout autre élément ne sont pas publics (sauf licence open source explicite type Creative Commons). Idem avec le téléchargement pour un usage hors ligne sur PC, mobile, tablette, appli iPhone ou Android.
Rappel : dCode est une ressource éducative et pédagogique, accessible en ligne gratuitement et pour tous.
Le contenu de la page "Codage Base45" ainsi que ses résultats peuvent être copiés et réutilisés librement, y compris à des fins commerciales, à condition de mentionner dCode.fr comme source.
L'export des résultats est gratuit et se fait simplement en cliquant sur les icônes d'export ⤓ (format .csv ou .txt) ou ⧉ copier-coller.
Pour citer dCode.fr sur un autre site Internet, utiliser le lien :
Dans un article scientifique ou un livre, la citation bibliographique recommandée est : Codage Base45 sur dCode.fr [site web en ligne], consulté le 17/04/2025,