Conversion base64
Base64 est une méthode d'encodage de l'information utilisant 64 caractères. Elle permet de représenter des données binaires en texte ASCII, en utilisant un ensemble de 64 caractères imprimables. Cette métdode est couramment utilisée pour transmettre des données sur des canaux qui ne peuvent pas gérer les données binaires, comme les e-mails et les pages web.
Les chiffres de la base64
Les chiffres de la base64 se composent de 4 groupes :
• Les lettres majuscules ABCDEFGHIJKLMNOPQRSTUVWXYZ (valeurs de 0 à 25)
• Les lettres minuscules abcdefghijklmnopqrstuvwxyz (valeurs de 26 à 51)
• Les chiffres 0123456789 (valeurs de 52 à 61)
• Les symboles +/ (valeurs 62 et 63):
La table de transcodage des chiffres Base64 en décimal et binaire est la suivante :
Les lettres majuscules ABCDEFGHIJKLMNOPQRSTUVWXYZ
A | B | C | D | E | F | G | H | I | J | K | L | M |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
000000 | 000001 | 000010 | 000011 | 000100 | 000101 | 000110 | 000111 | 001000 | 001001 | 001010 | 001011 | 001100 |
N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
001101 | 001110 | 001111 | 010000 | 010001 | 010010 | 010011 | 010100 | 010101 | 010110 | 010111 | 011000 | 011001 |
Les lettres minuscules abcdefghijklmnopqrstuvwxyz
a | b | c | d | e | f | g | h | i | j | k | l | m |
26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 |
011010 | 011011 | 011100 | 011101 | 011110 | 011111 | 100000 | 100001 | 100010 | 100011 | 100100 | 100101 | 100110 |
n | o | p | q | r | s | t | u | v | w | x | y | z |
39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 |
100111 | 101000 | 101001 | 101010 | 101011 | 101100 | 101101 | 101110 | 101111 | 110000 | 110001 | 110010 | 110011 |
Les chiffres 0123456789
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 |
110100 | 110101 | 110110 | 110111 | 111000 | 111001 | 111010 | 111011 | 111100 | 111101 |
Les symboles + et /
+ | / |
62 | 63 |
111110 | 111111 |
A cet alphabet s'ajoute le symbole = qui est utilisé comme caractère de remplissage.
Exemple de codage d'un texte en base64
Nous allons coder le mot "Film" en base 64 étape par étape.
Etape 1
Convertir le mot "Film" en sa représentation binaire ASCII :
F | i | l | m | |
Valeurs décimales | 70 | 105 | 108 | 109 |
Valeurs binaires | 01000110 | 01101001 | 01101100 | 01101101 |
Etape 2
Joindre les valeurs binaires :
01000110 01101001 01101100 01101101
• Regrouper la représentation binaire ASCII en blocs de 6 bits :
010001 100110 100101 101100 011011 01
Etape 3
Ajouter des zéros à droite du dernier bloc pour obtenir une longueur égale à 6 bits :
010001 100110 100101 101100 011011 010000
Etape 4
Convertir chaque bloc de 6 bits en décimal :
010001 -> 17
100110 -> 38
100101 -> 37
101100 -> 44
011011 -> 27
010000 -> 16
Un convertisseur base 2 vers base 10 est disponible ici.
Etape 5
Encodage Base64 en utilisant la table de corespondance Base64 ci-dessus :
17 -> R
38 -> m
37 -> l
44 -> k
27 -> b
16 -> Q
Etape 6
Concaténer les valeurs encodées et ajouter le caractère de remplissage = pour avoir un nombre de caractères multiple de 4 (ici 8 caractères)(*) :
RmlsbQ==
Ainsi, "Film" en Base64 s'écrit "RmlsbQ==".
(*) L'encodage Base64 se fait par paquet de 4 x 6 bits parce que 6 bits peuvent représenter exactement 64 valeurs différentes (2^6 = 64). Ainsi, chaque groupe de 6 bits peut être représenté par un caractère de la table Base64. En regroupant les données d'origine par paquets de 3 octets (soit 3 x 8 = 24 bits), on obtient 4 groupes de 6 bits, chacun pouvant être représenté par un caractère Base64. Cela permet donc de convertir des données binaires en une représentation textuelle plus compacte et portable, tout en évitant les problèmes de compatibilité avec des systèmes qui pourraient ne pas gérer certains caractères ASCII.
Voir aussi
Conversion en base n
Calculateurs de Cryptographie