Comment convertir de l’hex en Base64
- Collez l’hex dans Entrée · Hex. Les espaces, sauts de ligne, deux-points, tirets et préfixes
0xou\xsont ignorés, et la casse n’a pas d’importance. - Le Base64 s’affiche dans Sortie · Base64 pendant la saisie.
- Sous la sortie, décochez Remplissage (=) si le destinataire veut du Base64 sans remplissage, et réglez Retour à la ligne sur 64 (PEM) ou 76 (MIME) pour une sortie coupée.
- Copier la sortie, ou utilisez le bouton Base64 → Hex pour vérifier le résultat dans l’autre sens. Base64 en hex est le même outil dans le sens inverse.
Empreintes de hachage : hex ou Base64
Les fonctions de hachage renvoient des octets bruts. Les outils en ligne de commande comme sha256sum et md5sum affichent ces octets en hex, alors que de nombreux protocoles attendent la même empreinte en Base64. Voici les empreintes des cinq octets hello :
| Hachage | Hex (de sha256sum etc.) | Base64 |
|---|---|---|
| MD5 | 5d41402abc4b2a76b9719d911017c592 | XUFAKrxLKna5cZ2REBfFkg== |
| SHA-1 | aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d | qvTGHdzF6KLavt4PO0gs2a6pQ00= |
| SHA-256 | 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 | LPJNul+wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ= |
Les contextes qui veulent la forme Base64 :
- Subresource Integrity.
integrity="sha384-…"sur une balise<script>ou<link>contient une empreinte en Base64. Le générateur de hachage SRI construit l’attribut complet à partir d’un fichier. - Les en-têtes
Content-MD5. La RFC 1864 définit la valeur comme le Base64 de l’empreinte MD5 de 16 octets, et les stockages d’objets qui vérifient les envois avec cet en-tête rejettent la forme hex. Voir MD5 en Base64. - Les signatures et HMAC des requêtes d’API, généralement envoyés en Base64. HMAC en Base64 les calcule sous les deux formes.
- Les clés et secrets : une clé de 32 octets affichée par
openssl rand -hex 32devient la valeur Base64 de 44 caractères qu’attendent de nombreux fichiers de configuration.
Pour le SHA-256 de votre propre texte ou fichier, SHA-256 en Base64 saute complètement l’étape hex.
L’erreur classique : encoder le texte hex
echo -n 2cf24d…9824 | base64 donne un résultat plausible, mais faux. Cette commande encode les 64 caractères ASCII de l’hex au lieu des 32 octets qu’ils représentent, et renvoie 88 caractères commençant par MmNmMjRk. Cette valeur se décode en le texte hex, donc rien ne proteste jusqu’à ce qu’une vérification de signature ou d’intégrité échoue. Décodez d’abord l’hex :
echo -n 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 | xxd -r -p | base64
# LPJNul+wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ=
printf hello | openssl dgst -sha256 -binary | base64
# same result, without going through hex at all
xxd -r -p retransforme de l’hex simple en octets. L’outil est livré avec Vim ; sur les systèmes minimaux, installez le paquet xxd. Avec OpenSSL, c’est -binary qui fait sortir l’empreinte en octets plutôt qu’en hex.
Hex en Base64 dans le code
import base64
base64.b64encode(bytes.fromhex("5d41402abc4b2a76b9719d911017c592")).decode()
# 'XUFAKrxLKna5cZ2REBfFkg=='
Buffer.from("5d41402abc4b2a76b9719d911017c592", "hex").toString("base64");
// 'XUFAKrxLKna5cZ2REBfFkg=='
Les pages Python et Node.js traitent des variantes URL-safe et sans remplissage. Quand l’empreinte va dans une URL ou un JWT, convertissez le résultat avec Base64 en Base64URL.
Si la conversion échoue
- « nombre impair de chiffres hexadécimaux ». Chaque octet demande deux chiffres ; l’un d’eux s’est perdu au copier. Vérifiez les deux extrémités de l’entrée.
- « caractère inattendu ». L’entrée contient autre chose que de l’hex, comme une étiquette
sha256:ou le nom de fichier quesha256sumaffiche après l’empreinte. Supprimez-le ; Afficher saute à l’endroit concerné. - Les offsets d’un dump hex. Dans
00000010: 4865 6c6c,00000010est une position, pas une donnée, mais c’est de l’hex valide et il sera converti. Utilisez la sortie dexxd -p, qui n’a pas d’offsets.
FAQ
Comment convertir un hachage SHA-256 en hex en Base64 ?
Collez les 64 chiffres hex dans l’entrée. Le résultat fait 44 caractères et se termine par = : par exemple, 2cf24dba…9824 devient LPJNul+wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ=. En ligne de commande : echo -n HEX | xxd -r -p | base64.
Pourquoi mon Base64 est-il deux fois trop long ?
La chaîne hex a été encodée comme du texte : chaque chiffre hex est devenu un octet. Une empreinte SHA-256 traitée ainsi donne 88 caractères au lieu de 44. Décodez d’abord l’hex en octets, ce que fait ce convertisseur.
Combien de caractères Base64 donne une chaîne hex ?
Deux chiffres hex font un octet, et tous les 3 octets deviennent 4 caractères Base64, arrondis au multiple de 4 supérieur. 32 chiffres hex (MD5) donnent 24 caractères, 40 (SHA-1) en donnent 28, 64 (SHA-256) en donnent 44 et 128 (SHA-512) en donnent 88.
Puis-je convertir un UUID en Base64 ?
Oui, collez-le avec les tirets. Les 16 octets de 123e4567-e89b-12d3-a456-426614174000 deviennent Ej5FZ+ibEtOkVkJmFBdAAA==, soit 24 caractères au lieu de 36.