Comment encoder et décoder des données en Base64 et hexadécimal
Quand et pourquoi utiliser Base64, Base64-URL, Base32 et l’hex ; que faire quand des données binaires refusent de passer en ASCII ; comment décoder sans perdre les zéros de fin.

D’autres utilitaires qui complètent bien ce guide :
Pourquoi c’est important
Les données binaires doivent transiter par des systèmes qui n’acceptent que du texte. Cas classique : une PNG dans le corps d’une requête JSON. Le Base64 gonfle 3 octets en 4 caractères ASCII — le prix du transport sûr. Se tromper de variante (+/ vs -_, avec ou sans padding) et le décodeur recrache du bruit. Savoir quel codec et ses quirks transforme une contrariété en non-événement.
Trois scénarios réels
Encodez le fichier en Base64, placez dans le JSON, le serveur redécode en octets.
Un seul aller-retour
Coupez sur les points, décodez en Base64-URL l’en-tête et la charge utile, vérifiez la signature avec le secret.
Vérifier la signature
Collez des paires hex, le codec émet les octets bruts pour analyse.
Reconstituer la trame binaire
Parcours
Ouvrez l’outil Encoder/Décoder.
Choisir l’encodage
Base64 (RFC 4648 standard), Base64-URL (sûr pour URL), Base32 ou Hex. Chaque variante a alphabet et règles de padding propres.
Déposer l’entrée
Texte ou fichier dans le volet gauche. Basculez le mode si vous avez un fichier binaire plutôt qu’ASCII.
Basculer Encoder vs Décoder
L’encodage est symétrique : encoder puis décoder rend l’original. Si le décodage produit du bruit, l’entrée était probablement une autre variante.
Choisir UTF-8 vs octets bruts en sortie
Pour du texte, décodez en UTF-8. Pour binaire (images, archives), téléchargez le fichier résultat.
Copier ou télécharger
Texte brut vers le presse-papiers ; résultats binaires en téléchargement avec type MIME déduit.
Octets
Hello, GitHub?Encodages
Standard: SGVsbG8sIEdpdEh1Yj8=
URL-safe: SGVsbG8sIEdpdEh1Yj8
(no padding, '+'/'/' replaced with '-'/'_')Octets
\x00\x0F\xA5\xFFHex
00 0F A5 FF
Conseils avancés
- Les segments JWT sont Base64-URL sans padding. Un décodeur Base64 standard peut râler — utilisez le profil URL-safe.
- Retirez les espaces avant décodage. Le Base64 collé depuis un PDF contient souvent des coupures de ligne molles qu’un vieux décodeur refuse.
- Pour des captures réseau, l’hex est lisible humain ; pour le transport, préférez Base64. L’hex est 2× la taille source ; le Base64 ~1,33×.
- Vérifiez l’intégrité. Après décodage, hashez le résultat avec le générateur de hash et comparez à la source.
Pièges courants
Piège courant
Texte décodé avec caractères bizarres ou « ? »
Les octets sont du binaire valide mais pas de l’UTF-8. Passez la sortie de « texte UTF-8 » à « octets bruts » / téléchargement fichier.
Piège courant
Base64 avec un « = » final collé depuis un mail rejeté
Certains encodeurs utilisent = en padding, d’autres l’omettent. Ré-encodez avec padding explicite (ou retirez les =) pour coller à la cible.
Piège courant
Hex avec séparateurs (00:0F:A5) refuse de décoder
Retirez deux-points, espaces et retours ligne — le décodeur attend des chiffres hex purs.
Quand ce n’est pas l’outil adapté
- Hachage (sens unique) — générateur de hash. Le Base64 est réversible, pas un hash.
- Chiffrement (confidentialité) — le Base64 ne chiffre pas. Prenez un vrai chiffrement et protégez la clé.
- Compression — le Base64 gonfle les données. Si la taille compte, gzip puis Base64.
FAQ
Pourquoi Base64 ajoute ~33 % de volume ?
Chaque groupe de 3 octets devient 4 caractères sur un alphabet 64 symboles. 4/3 ≈ 1,33×. Le padding ajoute un peu pour les entrées non multiples de 3.
Le Base64 est-il une fonction de hash ?
Non. Le Base64 est réversible. Quiconque a la chaîne encodée récupère l’original.
Mes données partent-elles sur un serveur ?
Non. Encodage/décodage dans le navigateur ; les fichiers ne sont pas téléversés.
Étapes suivantes
- Hashez les sorties binaires avec le générateur de hash.
- Signez les charges API avec le générateur HMAC.
- Embarquez des images en HTML/CSS via l’outil Image vers Base64 quand vous voulez éviter le CDN.