Base64
Écrivez ou collez du texte, et il est aussitôt encodé ou décodé.
0 Caractères · 0 Octets
Résultat
Comment ça marche
Base64 réécrit des octets quelconques en 64 caractères qui survivent au passage par des systèmes bâtis pour du texte, comme le courrier électronique et les adresses web.
Trois octets donnent quatre caractères, si bien que le résultat est environ un tiers plus long que l’original. Les signes égal à la fin sont des caractères de remplissage, pour quand le nombre d’octets n’est pas divisible par trois.
Base64 est un encodage, pas un chiffrement. N’importe qui peut décoder le résultat : cela ne protège donc rien. Servez-vous-en pour transporter des données, jamais pour les cacher.
Le texte est encodé en UTF-8 avant d’être converti, et c’est pourquoi les lettres accentuées et les émojis marchent. La fonction intégrée du navigateur ne gère à elle seule que les caractères sous 256.
La variante sûre pour les URL remplace le plus par un trait d’union et la barre oblique par un tiret bas. Le décodage accepte ici les deux variantes, avec ou sans caractères de remplissage.
Comment l’outil fonctionne
Pour encoder, l’outil transforme d’abord le texte en octets UTF-8, puis la fonction btoa du navigateur les écrit en Base64. Pour décoder, il retire tous les blancs, retours à la ligne compris, remplace les traits d’union et les tirets bas par des plus et des barres obliques, et ajoute des signes égal jusqu’à ce que la longueur soit divisible par quatre. La fonction atob du navigateur décode ensuite, et les octets sont lus en UTF-8 en mode strict : des octets qui ne forment pas de l’UTF-8 valide donnent un message d’erreur, pas des caractères de remplacement. Sous la zone s’affichent les caractères et les octets. Les caractères sont comptés comme un lecteur les voit : un émoji avec une couleur de peau est un seul caractère, mais huit octets en UTF-8, et ce sont les octets qui fixent la longueur du résultat.
Exemple détaillé
Hé donne trois octets en UTF-8 : 48 pour H, et C3 A9 pour é. Les 24 bits se découpent en quatre groupes de six : 010010, 001100, 001110 et 101001, soit 18, 12, 14 et 41. Dans l’alphabet Base64, où A–Z valent 0–25 et a–z 26–51, cela donne S, M, O et p. Le résultat est SMOp, sans remplissage, car trois octets tiennent exactement dans quatre caractères.
Joli fait quatre octets et devient Sm9saQ==. Le quatrième octet ne remplit que deux caractères d’un nouveau groupe de quatre, et les deux signes égal complètent le groupe.
Cas limites
L’outil travaille sur du texte. Un Base64 qui contient une image ou un fichier compressé donne en règle générale le message d’erreur, parce que les octets ne sont pas de l’UTF-8 valide.
Dans les courriels, le Base64 est découpé en lignes : la RFC 2045 autorise au plus 76 caractères par ligne et demande d’ignorer les retours à la ligne au décodage. Comme l’outil retire d’abord tous les blancs, une partie texte encodée tirée d’un courriel peut être collée telle quelle.
Une chaîne dont la longueur divisée par quatre laisse un reste de 1 ne peut jamais être valide. Un dernier caractère isolé ne porte que six bits, trop peu pour un octet entier, et l’algorithme du WHATWG Infra Standard, que suit atob, rejette une telle entrée. Sm9sa, c’est-à-dire Sm9saQ== amputé de ses trois derniers caractères, donne le message d’erreur, alors que Sm9saQ sans signes égal se décode en Joli.