MiServe DevTools

Vos autocollants

Épinglez vos outils ici. Ils sont enregistrés dans ce navigateur.

Encodeur / décodeur Base64

Encodez du texte ou un fichier en Base64 et inversement, avec l'alphabet compatible URL, le remplissage facultatif et le retour à la ligne MIME.

S'exécute dans votre navigateur. Rien de ce que vous collez n'est envoyé.

À propos de cet outil

Qu'est-ce que Base64 ?

Base64 représente des octets quelconques avec 64 caractères ASCII imprimables : A–Z, a–z, 0–9, + et /. Chaque groupe de trois octets devient quatre caractères, et = complète le dernier groupe quand la longueur de l'entrée n'est pas un multiple de trois. Le format est défini dans la RFC 4648.

Il permet de faire transiter des données binaires par des canaux prévus pour du texte : pièces jointes d'e-mail, URI data: en HTML et en CSS, champs binaires en JSON, en-tête HTTP Authorization: Basic et les trois parties d'un JWT signé.

Base64 est un encodage, pas un chiffrement. N'importe qui peut le décoder : il ne cache rien.

Les variantes courantes

L'alphabet compatible URL remplace + et / par - et _, pour que la valeur puisse figurer dans une URL ou un nom de fichier sans échappement. Les JWT l'utilisent et suppriment aussi le remplissage.

MIME (RFC 2045) découpe la sortie en lignes de 76 caractères au plus. Un data URI place un type de média devant les données, comme dans data:image/png;base64,…, et utilise l'alphabet standard, pas l'alphabet compatible URL.

Au décodage, cet outil accepte les deux alphabets, l'absence de remplissage, les espaces, les tabulations et les retours à la ligne, et ignore un préfixe data:…;base64,. Si un caractère n'a rien à faire là, il indique lequel et à quelle position.

Texte, octets et fichiers

Base64 encode des octets : le texte doit donc d'abord être converti en octets. Cet outil utilise UTF-8, l'encodage qu'attendent aujourd'hui la plupart des systèmes. La fonction btoa() de JavaScript n'accepte que les caractères jusqu'à U+00FF et lève une exception pour tout le reste, ce qui explique pourquoi un code qui passe directement un emoji à btoa() échoue. Une lettre comme é ne lève pas d'exception, mais btoa() l'encode en un seul octet Latin-1, et non en deux octets comme le fait UTF-8.

Après le décodage, l'outil vérifie si les octets forment du texte UTF-8 valide sans caractères de contrôle. Si ce n'est pas le cas, il le signale, reconnaît les données PNG, JPEG, GIF, WebP, PDF et ZIP à leurs premiers octets, et vous permet de télécharger les octets dans un fichier. Les fichiers que vous choisissez sont lus par le navigateur et ne quittent jamais votre appareil.

Questions

Base64 est-il une forme de chiffrement ?

Non. Base64 est un encodage réversible sans clé : n'importe qui peut le décoder. Ne l'utilisez pas pour protéger des mots de passe, des tokens ou des données personnelles.

Pourquoi la sortie Base64 est-elle plus grande que l'entrée ?

Chaque caractère Base64 porte six bits au lieu de huit, donc trois octets demandent quatre caractères. Le résultat est plus grand que l'original d'environ un tiers, sans compter le remplissage et les éventuels retours à la ligne.

Quelle est la différence entre Base64 et base64url ?

base64url est la variante décrite à la section 5 de la RFC 4648. Elle utilise - et _ à la place de + et /, et omet souvent le remplissage =, si bien que la valeur peut figurer sans risque dans une URL ou un nom de fichier. Les données sont les mêmes ; seuls ces caractères changent. Cet outil décode les deux.

Le fichier que j'encode est-il envoyé quelque part ?

Non. Le fichier est lu par votre navigateur et encodé sur votre appareil. Il n'est envoyé à aucun serveur.

Autres outils de la catégorie Encodage