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". Sauf code licence open source explicite (indiqué Creative Commons / gratuit), l'algorithme pour "Codage Base45", l'applet ou snippet (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou les 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 les données, en téléchargement, script, ou les accès API à "Codage Base45" 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 Base45" 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 Base45 sur dCode.fr [site web en ligne], consulté le 21/11/2024,