Tutoriels

Comprendre et décoder le Base64

6 min de lecture

Un guide pratique pour reconnaître le Base64, le décoder en octets ou en texte, comprendre le remplissage et éviter de le confondre avec un chiffrement.

Base64 en une phrase

Base64 est un encodage binaire-vers-texte: il représente des octets quelconques avec un alphabet de 64 caractères. Il sert lorsque des données doivent traverser des systèmes prévus pour du texte, comme JSON, l’e-mail, les en-têtes HTTP, les Data URIs ou certains jetons.

Ce n’est pas du chiffrement. Une chaîne Base64 se décode sans mot de passe; elle ne doit donc pas servir à protéger des secrets.

Reconnaître un candidat Base64

Le Base64 standard utilise les majuscules, les minuscules, les chiffres, +, / et un padding optionnel =. Sa longueur est souvent un multiple de quatre si l’on ignore espaces et retours à la ligne.

La variante sûre pour les URL, Base64URL, remplace souvent + et / par - et _. L’apparence n’est qu’un indice: le test fiable consiste à décoder puis inspecter le résultat.

Décoder dans le bon ordre

Conservez d’abord une copie de la chaîne originale. Supprimez les espaces inoffensifs, vérifiez l’alphabet et le padding, puis décodez en octets. Interprétez ensuite ces octets comme texte UTF-8, JSON, image, certificat, données compressées ou autre format.

Une sortie illisible n’est pas forcément une erreur. Elle peut représenter des données binaires, des octets compressés ou du contenu chiffré nécessitant une étape séparée.

Ce qui se passe dans l’encodage

Base64 groupe les octets d’entrée par trois. Ces 24 bits sont divisés en quatre valeurs de 6 bits, et chaque valeur choisit un caractère dans l’alphabet Base64. Le mot Man devient TWFu.

Comme exemple vérifié, Hello, Morse! s’encode en SGVsbG8sIE1vcnNlIQ== et se décode vers le même texte UTF-8.

Padding et Unicode

Quand la longueur d’entrée n’est pas divisible par trois, Base64 ajoute du padding. Un octet restant produit deux =; deux octets restants produisent un =. Le padding indique au décodeur combien d’octets récupérer dans le dernier groupe.

Base64 encode des octets, pas des caractères abstraits. Un texte comme Café ☕ doit d’abord devenir des octets UTF-8; ces octets s’encodent en Q2Fmw6kg4piV.

Usages courants et limites de sécurité

Base64 est courant dans les API, champs JSON, pièces jointes d’e-mail, en-têtes Basic Auth, parties de JWT, images Data URI, certificats et fichiers de configuration. Dans chaque cas, il résout un problème de transport: rendre des octets compatibles avec du texte.

Ne parlez pas de “déchiffrement” Base64 et ne stockez pas mots de passe, clés API ou données personnelles simplement encodés en Base64. Pour la confidentialité, chiffrez réellement avant l’encodage de transport.

Questions fréquentes

Les caractères = sont du padding. Ils complètent le dernier groupe de 4 caractères lorsque la longueur originale en octets n’était pas multiple de trois.

Oui. Base64 peut transporter des octets chiffrés, mais il reste seulement la représentation externe. Décoder retire l’enveloppe texte; cela ne déchiffre pas le contenu.

Chaque groupe de 3 octets devient 4 caractères de texte. La forme encodée est donc environ un tiers plus grande avant les retours à la ligne ou autres formats.

Voir aussi