Passer au contenu

Encodeur Décodeur Base64 - Outil de Conversion Base64 Gratuit en Ligne

Outil gratuit d'encodage et de décodage base64. Convertissez du texte en Base64 ou décodez des chaînes Base64 instantanément. Prend en charge l'encodage standard et sécurisé pour URL. Aucune connexion requise.

Encodeur/Décodeur Base64

Convertir du texte vers et depuis l'encodage Base64

Calculateur de chargement...
📚

Documentation

Qu'est-ce que l'encodage Base64 ?

Base64 est une méthode permettant de transformer n'importe quelles données, y compris des données binaires comme des images, en texte brut composé uniquement de lettres, de chiffres et de quelques symboles. Un encodeur Base64 convertit les données dans cette forme textuelle. Un décodeur Base64 les reconvertit en données d'origine. Les programmes utilisent Base64 pour transporter des données binaires en toute sécurité via des systèmes, comme les e-mails ou JSON, qui attendent du texte brut.

Base64 utilise un alphabet de 64 caractères :

  • Lettres majuscules A–Z (26 caractères)
  • Lettres minuscules a–z (26 caractères)
  • Chiffres 0–9 (10 caractères)
  • Deux symboles, généralement + et / (2 caractères)

Certains systèmes utilisent également un signe égal (=) à la fin de la sortie comme remplissage. Le remplissage ne fait pas partie de l'alphabet de 64 caractères ; il sert simplement à compléter la longueur.

Pourquoi Base64 existe

De nombreux protocoles textuels anciens, notamment les e-mails (SMTP) et certaines parties de HTTP, ont été conçus pour transporter du texte ASCII sur 7 bits. Ils peuvent altérer des octets binaires bruts, comme ceux contenus dans une image JPEG. Base64 évite ce problème en représentant chaque octet uniquement avec des caractères sûrs et imprimables. C'est pourquoi les pièces jointes, les images intégrées aux pages web et les champs binaires dans JSON passent généralement d'abord par Base64.

Base64 n'est ni une compression ni un chiffrement. La sortie encodée est toujours plus volumineuse que l'entrée, et n'importe qui peut la décoder sans mot de passe ni clé.

Comment utiliser cet outil

  1. Saisissez ou collez le texte dans la zone de saisie.
  2. Choisissez « Encode to Base64 » pour convertir le texte en Base64, ou « Decode from Base64 » pour reconvertir une chaîne Base64 en texte.
  3. Activez la conversion en temps réel pour que la sortie soit mise à jour automatiquement pendant la saisie.
  4. Copiez le résultat avec le bouton de copie.

L'outil lit et écrit du texte Unicode standard ; les lettres accentuées, les symboles et les émojis sont donc correctement encodés et décodés, et pas seulement les lettres anglaises ordinaires.

Fonctionnement de l'encodage Base64

Le Base64 transforme chaque groupe de 3 octets d’entrée (24 bits) en 4 caractères de sortie (chacun contenant 6 bits), car 24 divisé par 6 égale 4.

  1. Prenez les octets d'entrée et écrivez-les en binaire.
  2. Regroupez les bits par blocs de 24 bits (3 octets).
  3. Divisez chaque bloc de 24 bits en quatre groupes de 6 bits.
  4. Recherchez chaque nombre sur 6 bits (de 0 à 63) dans l'alphabet Base64 et notez le caractère correspondant.

Si la longueur de l'entrée n'est pas un multiple de 3, le dernier bloc est incomplet. L'encodeur le complète avec des bits nuls, puis ajoute des caractères = à la sortie afin que le résultat soit toujours organisé en groupes de 4 :

  • Un octet restant produit 2 caractères Base64 suivis de ==.
  • Deux octets restants produisent 3 caractères Base64 suivis d'un caractère =.

Exemple d'encodage Base64

Encodage du mot « Hello » :

  1. Valeurs ASCII : 72, 101, 108, 108, 111
  2. Binaire : 01001000 01100101 01101100 01101100 01101111
  3. Les premiers 3 octets (24 bits) sont divisés en quatre groupes de 6 bits : 010010 000110 010101 101100, qui correspondent aux nombres 18, 6, 21, 44 → caractères S, G, V, s.
  4. Les 2 octets restants (16 bits) sont divisés en trois groupes de 6 bits, avec l'ajout de 2 bits nuls à la fin : 011011 000110 111100, qui correspondent aux nombres 27, 6, 60 → caractères b, G, 8.
  5. Comme il restait 2 octets, un caractère = est ajouté à la fin.
  6. Résultat : SGVsbG8=

Le décodage inverse ces étapes : chaque caractère est reconverti en son nombre sur 6 bits, les bits sont réunis en un flux, puis ce flux est relu sous forme d'octets de 8 bits.

Formule de la longueur encodée en Base64

Pour une entrée de n octets, la longueur encodée en caractères est :

encoded_length = 4 × ⌈n / 3⌉

où ⌈x⌉ signifie arrondir à l'entier supérieur le plus proche. Cette formule explique pourquoi la sortie Base64 est toujours environ un tiers plus volumineuse que l'entrée : 4 caractères de sortie pour chaque 3 octets d'entrée représentent une augmentation de 33 %.

Utilisations de Base64

  • Pièces jointes d'e-mails (MIME). Les e-mails ont été conçus pour le texte ; les pièces jointes sont donc converties en Base64 avant l'envoi, ce qui rend le fichier joint environ 33 % plus volumineux que l'original.
  • URI de données. De petites images peuvent être intégrées directement dans du HTML ou du CSS sous forme de texte, par exemple data:image/png;base64,iVBORw0KGgo..., ce qui évite une requête distincte pour le fichier. Cette méthode convient surtout aux petits fichiers, car les fichiers volumineux alourdissent la page et ne peuvent pas être mis en cache séparément.
  • API et JSON. JSON ne permet pas nativement de contenir des données binaires brutes ; les fichiers binaires transmis par une API JSON sont donc souvent d'abord encodés en Base64.
  • Authentification HTTP Basic. L’en-tête Authorization encode un nom d’utilisateur et un mot de passe en Base64, par exemple Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=. Ce n’est pas sûr en soi ; les identifiants peuvent être lus par toute personne qui les intercepte, l’authentification Basic ne doit donc être utilisée que sur HTTPS.
  • JSON Web Tokens (JWT). Un JWT est composé de parties séparées par des points, et chaque partie est encodée en Base64URL, une variante qui peut être placée sans risque dans une URL.
  • Stockage de données binaires sous forme de texte. Les bases de données ou fichiers de configuration qui n'acceptent que du texte contiennent parfois les données binaires sous forme de chaîne Base64.

Base64 comparé à d'autres encodages

La Base64 adaptée aux URL remplace les caractères standard + et / par - et _, car + et / ont une signification particulière dans une URL. Il est utilisé pour les JWT, les paramètres de requête d'URL et les noms de fichiers. Cet outil produit une sortie Base64 standard ; pour obtenir la forme adaptée aux URL, il suffit de remplacer ces deux caractères.

Base32 utilise un alphabet de 32 caractères ; chaque caractère transporte donc 5 bits au lieu de 6. Il convertit chaque groupe de 5 octets en 8 caractères, avec une surcharge de 60 % (8 ÷ 5 = 1,6), contre 33 % pour Base64. Base32 est choisi lorsque la sortie doit être saisie à la main ou lue au téléphone, car il évite les lettres majuscules et minuscules mélangées ainsi que les caractères facilement confondus.

Hexadécimal utilise 16 caractères (0–9, A–F) et nécessite 2 caractères par octet, ce qui double la taille (surcharge de 100 %). Il est couramment utilisé pour afficher des condensats, des couleurs et des adresses MAC, lorsque la lisibilité compte davantage que la compacité.

Quand ne pas utiliser Base64

Base64 augmente la taille et le coût en processeur ; il convient donc mal aux fichiers volumineux envoyés sur un réseau. Transmettre directement les données binaires brutes est plus compact et plus rapide. Il ne faut jamais compter sur ce codage pour dissimuler des informations sensibles comme des mots de passe ou des clés d'API, puisqu'aucun secret n'est nécessaire pour le décoder. Pour stocker de gros fichiers, le type de colonne binaire d'une base de données ou un service de stockage de fichiers est généralement préférable à une longue chaîne Base64 dans un champ texte.

Erreurs courantes

  • Oublier la conversion UTF-8. Encoder du texte contenant des lettres accentuées ou des émojis sans le convertir d'abord en octets UTF-8 peut altérer la sortie.
  • Supprimer le remplissage. Certains systèmes suppriment les caractères = finaux. La plupart des décodeurs peuvent tout de même fonctionner si la longueur de la chaîne est complétée pour atteindre un multiple de 4, mais ce n'est pas le cas de tous ; il est donc plus sûr de conserver le remplissage.
  • Sauts de ligne résiduels. Les encodeurs d’e-mails MIME découpent la sortie en lignes de 76 caractères au maximum. Selon la RFC 4648, un décodeur peut rejeter les sauts de ligne et les autres caractères situés hors de l’alphabet ; il vaut donc mieux les supprimer avant le décodage.
  • Mélanger les variantes. Base64 standard et Base64 adapté aux URL utilisent des caractères différents aux deux mêmes positions de l'alphabet ; un décodage avec la mauvaise variante produit des données incohérentes ou une erreur.

Foire aux questions

Le Base64 est-il une forme de chiffrement ? Non. C’est un encodage de texte réversible, pas un chiffrement. N’importe qui peut décoder instantanément une chaîne Base64 sans mot de passe. Utilisez un algorithme de chiffrement tel qu’AES si les données doivent rester secrètes.

Pourquoi le Base64 augmente-t-il la taille des données ? Parce qu’il dépense un caractère entier pour ne transporter que 6 bits, alors qu’un octet brut en contient 8. Convertir 3 octets (24 bits) en 4 caractères signifie que la sortie est plus grande que l’entrée d’un facteur 4/3, soit environ 33 %.

Le Base64 peut-il encoder des images et d’autres fichiers binaires ? Oui. Tout fichier binaire, y compris les images, les PDF et l’audio, peut être encodé en Base64 puis décodé octet par octet à l’identique. Il est couramment utilisé pour de petites images intégrées dans du HTML ou du CSS, mais constitue un mauvais choix pour les gros fichiers.

Quelle est la différence entre Base64 et Base64URL ? Le Base64URL remplace les caractères standard + et / par - et _, de sorte que le résultat peut être placé sans risque dans une URL ou un nom de fichier sans échappement supplémentaire. Les JWT utilisent le Base64URL pour cette raison.

Pourquoi ma chaîne Base64 provoque-t-elle une erreur « invalide » au décodage ? Les causes les plus courantes sont un remplissage = manquant, des espaces ou des sauts de ligne parasites dans la chaîne, ou des caractères qui n’appartiennent pas à l’alphabet Base64, par exemple l’emploi de + et de / alors que la chaîne a été encodée avec la variante adaptée aux URL.

D’où vient le Base64 ? Le Base64 a été normalisé pour le courrier électronique dans le cadre de MIME, dans la RFC 2045, publiée en novembre 1996. La spécification de référence actuelle pour Base64, Base32 et Base16 est la RFC 4648, publiée en octobre 2006.

Références

  1. Internet Engineering Task Force. RFC 4648: The Base16, Base32, and Base64 Data Encodings. RFC 4648 — groupes de 24 bits vers 4 caractères, règles de remplissage =, alphabet adapté aux URL et groupes de 40 bits du Base32.
  2. Internet Engineering Task Force. RFC 2045: Multipurpose Internet Mail Extensions (MIME) Part One. RFC 2045 — le Base64 dans le courrier électronique MIME et la limite de 76 caractères par ligne.
  3. Internet Engineering Task Force. RFC 7617: The 'Basic' HTTP Authentication Scheme. RFC 7617 — l’authentification Basic encode les identifiants en Base64 et n’est pas sûre sans TLS.
  4. Internet Engineering Task Force. RFC 7519: JSON Web Token (JWT). RFC 7519 — chaque partie d’un JWT est encodée en Base64URL.