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

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 donne 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=. Cette méthode n'est pas sécurisée en elle-même ; les identifiants peuvent être lus par quiconque les intercepte. L'authentification Basic ne doit donc être utilisée que via HTTPS.
  • JSON Web Tokens (JWT). Chacune des trois parties d'un JWT est encodée avec Base64URL, une variante adaptée à une insertion 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 anciens encodeurs fondés sur MIME insèrent un saut de ligne tous les 76 caractères ; la plupart des décodeurs modernes attendent une chaîne continue, sans saut de ligne.
  • 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

Base64 est-il une forme de chiffrement ? Non. Il s'agit d'un encodage textuel réversible, pas d'un chiffrement. N'importe qui peut décoder instantanément une chaîne Base64 sans mot de passe. Utilisez un algorithme de chiffrement comme AES si les données doivent rester secrètes.

Pourquoi Base64 augmente-t-il la taille des données ? Parce qu'il utilise un caractère entier pour ne transporter que 6 bits, tandis qu'un octet brut contient 8 bits. La conversion de 3 octets (24 bits) en 4 caractères signifie que la sortie est 4/3, soit environ 33 %, plus volumineuse que l'entrée.

Base64 peut-il encoder des images et d'autres fichiers binaires ? Oui. Tout fichier binaire, y compris les images, les PDF et les fichiers audio, peut être encodé en Base64 puis décodé à nouveau octet par octet. Cette méthode est couramment utilisée pour les petites images intégrées dans du HTML ou du CSS, mais convient mal aux fichiers volumineux.

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

Pourquoi ma chaîne Base64 provoque-t-elle une erreur « invalid » lors du décodage ? Les causes les plus courantes sont des caractères qui n'appartiennent pas à l'alphabet Base64, comme - et _ utilisés par la variante adaptée aux URL, ou une chaîne dont la longueur est supérieure d'un caractère à un multiple de 4. Aucune chaîne Base64 valide n'a cette longueur. Le décodage échoue également lorsque les octets décodés ne constituent pas un texte UTF-8 valide. Cet outil ignore les espaces et les sauts de ligne présents dans la chaîne, et décode également une chaîne dont le remplissage = final a été supprimé.

D'où vient Base64 ? Cette technique remonte aux premières méthodes d'envoi de données binaires via des systèmes de messagerie limités au texte dans les années 1980, et a été officiellement normalisée dans le cadre de MIME par RFC 2045 en 1996. La spécification de référence actuelle pour Base64, Base32 et Base16 est RFC 4648.