Le principe du codage Base 64 consiste à utiliser
des caractères US-ASCII (caractères non accentués) pour coder
tout type de données codé sur 8 bits.
Les protocoles de courrier électronique ont en effet
été prévus à l'origine pour transporter des messages en texte
seulement. Or, étant donné la diversité des systèmes de courrier
électronique, l'échange de données binaires se traduit la plupart
du temps par des transformations du contenu rendant illisible le document original.
Le format Base64, utilisé massivement dans les échanges
de courrier électronique, permet ainsi de transmettre n'importe quel document
binaire (application, vidéo, fichier audio, etc.) en pièce jointe d'un courrier
électronique en les codant à l'aide de caractères classiques.
Le codage Base64 provoque une augmentation globale de 33% du volume des
données à encoder.
Le principe du codage Base64 consiste à utiliser 4 caractères imprimables
(au format US-ASCII) pour coder un groupe de 3 octets quelconques (3*8 bits = 24 bits).
Le codage Base64 utilise un alphabet de 64 caractères imprimables classiques
pour représenter une donnée de 6 bits. Les 64 symboles de cet alphabet son choisis pour être
universellement lisibles et pour ne pas posséder de signification dans les
principaux protocoles de messagerie (en particulier SMTP).
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
123456789+/.
En parcourant les données binaires de gauche à droite, des groupes de 24 bits
sont créés en concaténant des blocs de 3 données de 8 bits.
Chaque groupe de 24 bits est ensuite divisé en 4 groupes de 6 bits, correspondant
à 4 caractères de l'alphabet Base64.
L'encodage Base64 est prévu pour des données formant un multiple de 24 bits.
Ainsi, si le volume des données à coder ne forment
pas un multiple de 24 bits, le résultat du codage Base64 doit être complété par 0 à 3 caractères « = »
afin d'obtenir un multiple de 24 bits. Ce 65ème caractère ne peut ainsi être présent
qu'à la fin des données encodées.
Par ailleurs, afin de garantir une compatibilité avec l'ensemble des systèmes
de messagerie, les données Base64 sont formattées avec des retours à la ligne afin que
chaque ligne ne dépasse pas 76 caractères.
|