Encodage Uuencode
Le codage Uuencode
Le codage Uuencode (contraction de Unix-to-Unix encode) est un algorithme permettant de convertir
des données binaires codées sur 8 bits en un format de codage sur 7 bits.
Le codage Uuencode a été créé à l'origine pour permettre
l'envoi de fichiers binaires grâce au protocole de courrier électronique uucp.
En effet, le système uucp permettait de convertir les jeux de caractères
utilisés entre les différents systèmes et ne permettait pas de distinguer
le corps du message d'une pièce jointe. Ainsi, Uuencode a été prévu
pour convertir les fichiers binaires dans un format texte compatible avec la messagerie et ne comportant
pas de caractères risquant d'être convertis, ce qui rendrait illisible la pièce
jointe.
Le décodage consistant à retrouver un fichier binaire
à partir d'un fichier Uuencodé est appelé Uudecode (en anglais Uudecoding).
Format d'un fichier Uuencodé
Un fichier au format Uuencode commence par une ligne possédant
le format suivant :
begin mode nom_du_fichier
Principe de l'encodage Uuencode
L'encodage Uuencode consiste à prendre des groupes de 3 octets (24 bits)
et à les considérer comme 4 groupes de 6 bits, représentés
par des valeurs comprises entre 0 et 63. S'il y a moins de 24 bits dans le flux entrant,
Uuencode complète avec des 0.
Uuencode ajoute 32 (valeur décimale) à chaque valeur, afin
d'obtenir une valeur correspondant à un caractère ASCII imprimable.
Les données sont représentées sur des lignes de
60 caractères. Ainsi chaque ligne permet d'encoder 45 octets du flux d'entrée car 4 octets des données de sortie
représentent 3 octets de données d'entrée.
Chaque ligne est précédée d'un caractère
indiquant le nombre de caractères de la ligne.
Enfin, une ligne contenant uniquement un espace, suivie d'une ligne contenant
la chaîne de caractères end. L'espace précédant la ligne finale est parfois remplacé par le caractère
ASCII 96 (accent grave), car certain logiciels de messagerie suppriment les lignes vides.