Mode d’emploi
- Saisissez ou collez le texte à encoder, passez l’entrée en Hexa pour encoder des octets bruts, ou cliquez sur « Ouvrir un fichier » pour encoder un fichier.
- Laissez « Encodage du texte » sur UTF-8, sauf si le système destinataire attend un autre jeu de caractères.
- Réglez les options : gardez la variante Standard dans la plupart des cas, désactivez le remplissage si le destinataire n’en veut pas, et activez le retour à la ligne à 76 (MIME) ou 64 (PEM) caractères si nécessaire.
- Copiez la sortie Base64 ou téléchargez-la dans un fichier.
Fonctionnement de l’encodage Base64
L’encodeur lit l’entrée par blocs de trois octets. Ces 24 bits sont découpés en quatre groupes de 6 bits, et chaque valeur de 6 bits (0 à 63) désigne un caractère : A-Z pour 0 à 25, a-z pour 26 à 51, 0-9 pour 52 à 61, puis + et /. Trois octets en entrée, quatre caractères en sortie : c’est pourquoi le Base64 est environ 33 % plus volumineux que les données d’origine.
Texte M a n
Octets 77 97 110
Binaire 01001101 01100001 01101110
6 bits 010011 010110 000101 101110
Indice 19 22 5 46
Base64 T W F u
Remplissage et longueur de la sortie
Lorsque la longueur de l’entrée n’est pas un multiple de trois, le dernier groupe est incomplet. Un octet restant donne deux caractères suivis de == ; deux octets restants donnent trois caractères et un =. Une sortie avec remplissage compte donc toujours 4 × ceil(n / 3) caractères pour n octets en entrée.
Le remplissage ne contient aucune donnée. Les JSON Web Tokens, les paramètres d’URL et de nombreuses API s’en passent : désactivez donc le remplissage lorsque le destinataire attend une sortie sans remplissage. Pour les liens et les noms de fichiers, choisissez la variante compatible URL ou utilisez la page Base64URL : toutes deux remplacent + et / par - et _.
Retour à la ligne pour MIME et PEM
Par défaut, la sortie tient sur une seule longue ligne, ce dont ont besoin JSON, les data URI et les en-têtes HTTP. Deux formats exigent des sauts de ligne :
- MIME, 76 caractères. Les pièces jointes d’e-mail envoyées avec
Content-Transfer-Encoding: base64ne doivent pas comporter de lignes de plus de 76 caractères (RFC 2045). Cette option termine les lignes par CRLF, comme l’exige MIME. - PEM, 64 caractères. Les certificats et les clés placés entre les lignes
-----BEGINet-----ENDutilisent des lignes de 64 caractères (RFC 7468). Cette option utilise des fins de ligne LF.
Jeux de caractères et fichiers
Base64 encode des octets, pas des lettres : le texte est donc d’abord converti en octets selon un jeu de caractères. La lettre é occupe deux octets en UTF-8 mais un seul en ISO-8859-1 ou Windows-1252, si bien qu’un même texte produit un Base64 différent. UTF-8 est le bon choix pour le Web, JSON et presque toutes les API modernes ; ne choisissez GBK, Shift_JIS, Windows-1251 ou un autre jeu de caractères que pour correspondre à un système ancien.
Les fichiers sont encodés tels qu’ils sont stockés, sans aucune conversion de jeu de caractères. Pour des images accompagnées d’extraits HTML et CSS prêts à l’emploi, voir Image en Base64 ; pour un data URI avec le type MIME détecté, utilisez Fichier en Base64.
Spécifications
| Alphabet | A-Z a-z 0-9 + / |
|---|---|
| Taille de sortie | 4 caractères pour 3 octets (environ 133 %) |
| Remplissage | Complété par = jusqu’à un multiple de 4 caractères |
| Norme | RFC 4648, section 4 |
| Sensible à la casse | Oui |
Exemples
| Entrée (UTF-8) | Sortie |
|---|---|
Hello, World! | SGVsbG8sIFdvcmxkIQ== |
Base64.is | QmFzZTY0Lmlz |
你好 | 5L2g5aW9 |
Questions fréquentes
Pourquoi ma sortie Base64 diffère-t-elle de celle d’un autre encodeur ?
echo en ajoute un ; utilisez printf '%s' ou echo -n), un autre jeu de caractères, des fins de ligne Windows dans le texte, ou des réglages différents de remplissage, d’alphabet ou de retour à la ligne. Les mêmes octets avec les mêmes options donnent toujours la même sortie.Comment encoder du texte Unicode en Base64 en JavaScript ?
btoa() n’accepte que les caractères jusqu’à U+00FF et lève une erreur pour tous les autres. Convertissez d’abord la chaîne en octets UTF-8, par exemple btoa(String.fromCharCode(...new TextEncoder().encode(str))). En Node.js, utilisez Buffer.from(str, 'utf8').toString('base64').Comment encoder en Base64 en ligne de commande ?
printf '%s' 'your text' | base64 sous Linux ou macOS. Le base64 de GNU coupe la sortie à 76 caractères par défaut (ajoutez -w 0 pour obtenir une seule ligne), et openssl base64 la coupe à 64 (ajoutez -A).L’encodage Base64 est-il une forme de chiffrement ?
De combien Base64 augmente-t-il la taille de mes données ?
Chaque groupe de 3 octets devient 4 caractères, avec un arrondi au groupe complet supérieur : la sortie est donc environ 33 % plus volumineuse. Le retour à la ligne MIME ajoute deux octets supplémentaires (CRLF) tous les 76 caractères.