Encodage Hex

Collez votre texte ci-dessous et cliquez sur Encoder pour le convertir en chaîne hexadécimale. Tout le traitement se fait localement dans votre navigateur.

Copié !

Qu'est-ce que l'encodage Hex ?

L'encodage hexadécimal convertit chaque octet de données en une chaîne hexadécimale de deux caractères (00ff). C'est utile pour inspecter des données binaires, déboguer des protocoles réseau et représenter des tableaux d'octets dans le code.

Les caractères UTF-8 qui utilisent plus d'un octet produiront plusieurs paires hexadécimales.

Le séparateur et la casse sont à votre main : rien entre les octets pour une chaîne compacte, des espaces pour la lisibilité, ou des deux-points dans le style habituel des empreintes et des adresses MAC. Tout se passe dans votre navigateur.

Vous déboguez quelque chose qui refuse de se décoder ?

Une charge utile qui refuse de se décoder est le plus souvent un symptôme, pas la panne : un double encodage quelque part dans la chaîne, un jeu de caractères supposé plutôt que déclaré, un jeton signé sur des octets qui ne sont pas tout à fait ceux attendus. C'est notre métier, sur les intégrations, les API et les systèmes qui se passent des données.

Dites-nous ce qui casse

Questions fréquentes

À quoi sert l'encodage hexadécimal ?
On se tourne vers l'hexadécimal quand un humain doit lire les octets. Empreintes, sommes de contrôle, clés cryptographiques, valeurs de couleur, adresses MAC, vidages mémoire et captures réseau sont tous présentés en hexadécimal, parce que chaque octet devient exactement deux caractères : les positions s'alignent en colonnes et un octet erroné saute aux yeux. C'est aussi la façon habituelle de coller des données binaires dans du code source.
En quoi l'hexadécimal diffère-t-il du Base64 ?
L'hexadécimal coûte plus cher et se lit mieux. Chaque octet devient deux caractères, donc la sortie fait exactement le double de l'entrée, là où le Base64 grossit d'environ un tiers. En échange, l'hexadécimal offre une correspondance fixe et évidente : vous pouvez désigner une paire et savoir quel octet c'est, compter les décalages à l'oeil, et modifier un octet sans toucher aux voisins. Le Base64 gagne quand la taille compte, l'hexadécimal quand c'est un humain qui regarde.
Pourquoi un seul caractère donne-t-il parfois plusieurs paires hexadécimales ?
Parce que l'hexadécimal encode des octets, pas des caractères, et que le texte devient des octets via UTF-8. Tout ce qui relève de l'ASCII fait un octet, donc une paire. Les lettres latines accentuées, le grec et le cyrillique prennent deux octets, la plupart des caractères CJK trois, et les émojis quatre. Une chaîne de cinq caractères peut donc facilement ressortir en vingt paires.
Quel séparateur choisir ?
Cela dépend de la destination. Rien entre les octets, c'est ce qu'attendent le code et la plupart des API, et c'est le plus court. Les espaces rendent une longue chaîne lisible et correspondent à ce qu'on voit dans un dump. Les deux-points sont la convention des empreintes de certificats et des adresses MAC. Les octets sont identiques dans les trois cas ; seule la ponctuation entre eux change.
L'encodage hexadécimal est-il la même chose qu'un hachage ?
Non, même si on les voit généralement ensemble. Un hachage est une fonction à sens unique : il réduit n'importe quelle entrée à une empreinte de taille fixe qu'on ne peut pas ramener à l'original. L'hexadécimal est une façon réversible d'écrire des octets. Les empreintes s'affichent d'ordinaire en hexadécimal, d'où la ressemblance, mais encoder un mot de passe en hexadécimal ne protège rien du tout : cela donne seulement une version plus longue du même mot de passe.