Mode d’emploi
- Choisissez Encoder pour transformer du texte en Base32hex, ou Décoder pour retrouver le texte à partir du Base32hex.
- Laissez la variante Base32hex sélectionnée. Désactivez le remplissage ou passez en minuscules si votre format l’exige.
- Saisissez ou collez vos données, ou ouvrez un fichier. Le résultat se met à jour pendant la saisie.
- Copiez le résultat ou téléchargez-le sous forme de fichier.
Qu’est-ce que Base32hex ?
Base32hex est l’encodage « Base 32 Encoding with Extended Hex Alphabet » défini dans la section 7 de la RFC 4648. Il fonctionne exactement comme le Base32 standard : chaque caractère transporte 5 bits, 5 octets donnent 8 caractères, et la sortie est complétée par des = jusqu’à un multiple de 8. Seul l’alphabet change. Au lieu de A-Z 2-7, Base32hex poursuit le comptage là où l’hexadécimal s’arrête : les chiffres 0 à 9 valent 0 à 9, A vaut 10 et V vaut 31.
Comme les deux alphabets ont la plupart de leurs caractères en commun, une chaîne Base32hex peut souvent être passée à un décodeur Base32 standard sans provoquer d’erreur, mais les octets obtenus sont faux. Décodez toujours avec la variante qui a servi à l’encodage.
L’ordre de tri est préservé
L’alphabet suit l’ordre ASCII croissant, et la valeur de chaque caractère augmente avec sa position. Par conséquent, comparer deux chaînes Base32hex caractère par caractère donne le même ordre que comparer les octets sous-jacents. La RFC 4648 souligne cette propriété, absente du Base32 standard et de Base64 ; elle fait de Base32hex un bon choix pour les clés de stockages triés comme les bases de données et les magasins clé-valeur.
Conservez toutes les chaînes dans la même casse, et désactivez le remplissage lorsque les entrées ont des longueurs différentes : le signe = se classe entre les chiffres et les lettres et peut fausser l’ordre.
Base32hex dans DNSSEC NSEC3
Les enregistrements NSEC3, définis dans la RFC 5155, prouvent qu’un nom DNS n’existe pas tout en rendant plus difficile l’énumération de tous les noms de la zone. Chaque nom est haché avec SHA-1, et le hachage de 20 octets est écrit sous la forme d’une étiquette Base32hex de 32 caractères sans remplissage, généralement affichée en minuscules. Comme l’encodage conserve l’ordre des hachages, les noms hachés forment une chaîne triée. Pour transformer un hachage en une telle étiquette, collez-le comme entrée hexadécimale, désactivez le remplissage et choisissez Minuscules. Cet outil n’effectue que l’étape d’encodage ; il ne calcule pas le hachage NSEC3 salé et itéré.
Base32hex dans le code
# Python 3.10+
import base64
base64.b32hexencode(b'foobar') # b'CPNMUOJ1E8======'
base64.b32hexdecode('CPNMUOJ1E8======') # b'foobar'
// Go (import "encoding/base32")
base32.HexEncoding.EncodeToString(data)
base32.HexEncoding.WithPadding(base32.NoPadding).EncodeToString(data)
Spécifications
| Alphabet | 0-9 A-V |
|---|---|
| Taille de sortie | 8 caractères pour 5 octets (160 %) |
| Remplissage | Complété par = jusqu’à un multiple de 8 caractères |
| Norme | RFC 4648, section 7 |
| Sensible à la casse | Non |
Exemples
| Entrée (UTF-8) | Sortie |
|---|---|
Hello, World! | 91IMOR3F5GG5ERRIDHI22=== |
Base64.is | 89GN6P9M6GN6ISO= |
你好 | SIUQ1PD5NK====== |
Questions fréquentes
Quelle est la différence entre Base32 et Base32hex ?
A-Z 2-7 ; Base32hex utilise 0-9 A-V, ce qui préserve l’ordre de tri des données. Les deux ne sont pas interchangeables.Base32hex est-il sensible à la casse ?
L’alphabet est défini en majuscules, mais ce décodeur accepte aussi les entrées en minuscules. Activez Minuscules si vous avez besoin d’une sortie en minuscules, par exemple pour des étiquettes DNS.
Faut-il utiliser le remplissage ?
= jusqu’à un multiple de 8 caractères, mais de nombreux formats, dont NSEC3, l’omettent. Le décodeur accepte les deux : choisissez ce qu’attend le système destinataire.