Encodeur / décodeur Base64
Encodez et décodez Base64, Base64URL, Base32 et hexadécimal — le texte en direct pendant la frappe, les fichiers par glisser-déposer — avec un décodeur assez strict pour vous indiquer la position exacte du premier caractère qui n’a rien à faire là, au lieu de hausser les épaules. Tout s’exécute dans votre navigateur : les chaînes que l’on décode sont si souvent des jetons et des secrets que les envoyer à un serveur, ou les coller dans un chat IA journalisé, est précisément ce qu’un décodeur ne doit jamais vous demander.
Fichiers
Déposez un fichier n’importe où dans ce cadre pour l’encoder dans le format sélectionné ci-dessus : vous obtenez le texte encodé et une URL de données prête à l’emploi. Ou collez ici du texte encodé et téléchargez les octets décodés sous forme de fichier.
Quatre alphabets, un seul travail
Les quatre formats font la même chose — écrire des octets arbitraires avec uniquement des caractères sûrs et imprimables — pour des publics différents. Le Base64 standard est le format par défaut des pièces jointes d’e-mails, des fichiers de configuration et d’un millier d’API. Base64URL remplace les deux caractères qui casseraient une URL (+ et /) par - et _, abandonne le remplissage, et c’est l’alphabet présent dans chaque JSON Web Token — décodez-en un avec le décodeur JWT et ses trois segments sont dans ce format. Base32 utilise un alphabet plus petit, insensible à la casse, qui survit à la lecture à voix haute et à la ressaisie ; c’est pourquoi les secrets d’authentification TOTP sont émis dans ce format. Hex double la taille et achète une transparence totale : un octet, deux caractères, rien de caché — le format des hachages, que le générateur de hachages produit et que l’identificateur de hachages reconnaît.
La rigueur est délibérée : c’est la différence entre un décodeur et un outil de débogage. Les fonctions intégrées du navigateur comme atob() lèvent une seule erreur générique, aussi bien pour une chaîne avec une faute de frappe en position 4 que pour une chaîne qui n’est pas du Base64 du tout. Ce décodeur valide caractère par caractère et signale la première position en échec — un guillemet entraîné depuis du JSON, un + là où appartient l’alphabet sûr pour les URL, du remplissage échoué au milieu, ou un caractère final dont les bits restants ne sont pas zéro, ce qui signifie que la chaîne a été modifiée après l’encodage. Quatre-vingt-dix pour cent des mystères « ça ne se décode pas » deviennent visibles à cette unique position dès que quelqu’un la montre du doigt. Et comme ce travail implique si souvent des identifiants — un secret Kubernetes est du Base64 (un encodage, jamais un chiffrement), la charge utile d’un jeton, une clé dans un fichier de configuration —, toute la conversion se fait localement, selon la même règle que le validateur .env : les entrées sensibles ne sont jamais transmises. L’article compagnon, Base64 n’est pas du chiffrement, développe plus longuement pourquoi cette distinction compte.
Questions fréquentes
Le Base64 est-il une forme de chiffrement ?
Non. Le Base64 est un encodage — un changement de costume réversible, sans clé et sans secret. Quiconque voit une chaîne Base64 peut la décoder instantanément ; c’est pourquoi « la clé d’API est encodée en Base64 dans la configuration » signifie que la clé d’API s’y trouve, en pratique, en clair. L’article Base64 n’est pas du chiffrement démêle encodage, chiffrement et hachage, ainsi que les erreurs que produit chaque confusion.
Pourquoi ce décodeur m’indique-t-il la position exacte d’une erreur ?
Parce qu’un « caractère invalide » sans position est la manière dont les décodeurs génériques vous font perdre votre après-midi. Les chaînes collées échouent habituellement pour l’une de trois raisons : un caractère parasite venu du texte environnant (un guillemet, une virgule, une ligne de journal), le mauvais alphabet (une chaîne sûre pour les URL donnée à un décodeur standard), ou une copie tronquée. Ici, le premier caractère fautif est nommé avec son index, pour que vous puissiez regarder cet endroit précis et voir laquelle des trois choses s’est produite.
Quelle est la différence entre Base64 et Base64URL ?
L’alphabet. Le Base64 standard utilise + et /, qui sont des caractères structurels dans les URL ; le Base64 sûr pour les URL les échange donc contre - et _ et abandonne généralement le remplissage =. C’est la variante présente dans chaque JWT. Donner une variante au décodeur de l’autre est la cause la plus fréquente d’un échec de décodage à la position du premier + ou / — cet outil garde les modes séparés pour que le message d’erreur puisse vous dire que c’est bien ce qui s’est passé.
Est-il sûr de décoder ici un jeton ou un secret ?
Oui — la conversion s’exécute dans votre navigateur, sur cette page, et rien de ce que vous collez n’est transmis ni stocké. Cela compte, parce que les choses que l’on décode sont très souvent des identifiants : un bloc Base64 dans un fichier de configuration, un secret Kubernetes (c’est du Base64, pas du chiffrement — voir la question ci-dessus), la charge utile d’un jeton. Coller la même chaîne dans un chat IA envoie une copie vers un système tiers journalisé ; voir ne laissez jamais un chatbot toucher à vos secrets.
Pourquoi mon fichier s’est-il décodé en « UTF-8 invalide » ?
Parce qu’il est binaire — une image, une archive, n’importe quoi de compilé — et que le binaire n’est pas du texte. Le décodeur de texte refuse, plutôt que de vous remettre un charabia. Utilisez la section fichiers sous les zones de texte : collez-y le Base64 et téléchargez le fichier reconstruit, octets intacts.