Comment convertir entre deux encodages quelconques
- Collez votre chaîne dans l’entrée. Avec De sur Détection automatique, la ligne d’état indique ce que l’outil pense avoir reconnu : « Détecté : Base58 · Ce n’est pas ça ? Lire comme [Base64] … ».
- Si la supposition est fausse, cliquez sur l’un des boutons Lire comme, ou réglez De vous-même.
- Choisissez la cible dans Vers. Les formats sont regroupés : texte, Base64, octets et nombres, Base32, bases à grands nombres, Base85/Base91/Base45, et e-mail, URL et anciens formats.
- Les options de chaque format apparaissent sous son panneau, par exemple Alphabet pour Base58 et Base62 ou Remplissage (=) pour Base32 et Base64.
- ⇄ Inverser fait passer la sortie dans l’entrée et intervertit les deux formats. Copier la sortie et Télécharger récupèrent le résultat, et Enregistrer les octets télécharge les octets décodés sous forme de fichier.
Chaque conversion passe par les octets bruts : l’entrée est décodée, puis les octets sont réencodés. Le compteur Octets sous l’outil indique leur nombre, ce qui est souvent le moyen le plus rapide de vérifier qu’une clé ou un hachage est complet. Les pages dédiées listées ci-dessus ouvrent ce même convertisseur avec les formats préréglés.
Comparaison des encodages
| Encodage | Alphabet | Taille de sortie | Surcoût | Usage typique |
|---|---|---|---|---|
| Hex / Base16 | 16 | 2 caractères par octet | 100 % | Hachages, débogage, dumps d’octets |
| Base32 | 32 | 8 pour 5 octets | 60 % | Secrets TOTP, adresses onion, identifiants insensibles à la casse |
| Base36 | 36 | ≈ 1,55 par octet | ≈ 55 % | Identifiants et nombres courts insensibles à la casse |
| Base45 | 45 | 3 pour 2 octets | 50 % | QR codes (certificats sanitaires européens) |
| Base58 | 58 | ≈ 1,37 par octet | ≈ 37 % | Bitcoin, Solana, IPFS |
| Base62 | 62 | ≈ 1,34 par octet | ≈ 34 % | URL et identifiants courts |
| Base64 | 64 | 4 pour 3 octets | 33 % | E-mail, JSON, data URI, JWT, presque tout |
| Ascii85 / Z85 | 85 | 5 pour 4 octets | 25 % | PDF, PostScript, Git, clés ZeroMQ |
| basE91 | 91 | ≈ 1,23 par octet | 14–23 % | Faire tenir des données dans l’ASCII imprimable |
| Uuencode / xxencode | 64 | 4 pour 3 octets plus l’encadrement des lignes | ≈ 38 % | Anciennes pièces jointes d’e-mail et de Usenet |
Le surcoût est donné pour des données aléatoires ; pour les bases à grands nombres, il varie d’un ou deux caractères selon la valeur. Le Base45 semble peu efficace ici, mais dans le mode alphanumérique d’un QR code, ses 45 caractères coûtent 5,5 bits chacun, ce qui le ramène à près de 3 %.
Pour une même entrée, voici la chaîne de 5 octets Hello dans chacun :
| Hex | Base32 | Base36 | Base45 | Base58 | Base62 | Base64 | Ascii85 | basE91 |
|---|---|---|---|---|---|---|---|---|
48656c6c6f | JBSWY3DP | 3yud78mn | %69 VDL2 | 9Ajdvzr | 5TP3P3v | SGVsbG8= | 87cURDZ | >OwJh>A |
Trois façons de construire une base
Les encodages se répartissent en trois groupes, et le groupe explique l’essentiel de leur comportement.
Groupes de bits : hex, Base32, Base64, uuencode et xxencode. La taille de l’alphabet est une puissance de deux : chaque caractère porte donc un nombre fixe de bits (4, 5 ou 6). L’encodage est rapide, fonctionne en flux, et la longueur de la sortie ne dépend que de celle de l’entrée.
Blocs fixes : Base45 (2 octets en 3 caractères) et la famille Base85 (4 octets en 5). L’alphabet n’est pas une puissance de deux : un petit bloc est donc converti comme un nombre. Cela reste rapide et utilisable en flux, et la longueur est là encore fixée par la taille de l’entrée.
Grands nombres : Base36, Base58 et Base62. L’entrée entière forme un seul nombre, écrit dans la nouvelle base. N’importe quelle taille d’alphabet convient et la sortie n’a pas de remplissage, mais chaque octet influe sur chaque caractère, les octets nuls en tête demandent un traitement particulier, et le coût croît avec le carré de la taille. Ce convertisseur conserve les zéros de tête sous forme de chiffres zéro en tête et limite ces bases à 64 Ko d’entrée.
Le basE91 se situe entre les groupes : il lit 13 ou 14 bits à la fois, si bien que sa longueur dépend légèrement du contenu.
Quel encodage choisir
- Des programmes échangent avec des programmes : Base64, ou Base64URL dans les URL et les jetons. Tous les langages l’intègrent, et aucun autre n’est aussi largement compris.
- Des personnes lisent, saisissent ou dictent la valeur : Base32, de préférence la variante de Crockford, ou Base36. Les deux ignorent la casse ; Crockford évite en plus les lettres qui se ressemblent.
- Des identifiants opaques courts dans des URL : Base62 pour la chaîne lettres-et-chiffres la plus courte, Base58 si des gens risquent de la recopier à la main, puisqu’il exclut
0,O,Ietl. - Un QR code : Base45 avec le mode alphanumérique des QR codes.
- Chaque octet compte et le canal est de l’ASCII simple : Ascii85 ou Z85 pour des blocs fixes, basE91 pour quelques pourcents de plus.
- Inspecter des octets : hex. Deux fois plus gros, mais chaque octet tient en deux caractères lisibles.
- Un ancien système l’exige : uuencode ou xxencode, et rien de nouveau.
La comparaison entre hex, Base32, Base58 et Base85 approfondit les compromis par rapport au Base64.
FAQ
Quel est l'encodage texte le plus compact pour des données binaires ?
Parmi les plus courants, le basE91 (environ 23 % de surcoût sur des données aléatoires), puis la famille Base85 (25 %), puis le Base64 (33 %). Les encodages plus compacts utilisent une ponctuation qu’il faut échapper en JSON, en HTML ou dans les shells, ce qui fait souvent du Base64 le meilleur compromis.
Quel encodage est le meilleur pour les URL ?
Le Base64URL pour les jetons générés par des programmes, car il est court et normalisé. Le Base62 ou le Base58 quand la valeur ne doit contenir que des lettres et des chiffres, et le Base32 ou le Base36 quand elle doit survivre aux changements de casse. Le Base45 et le Base85 contiennent des caractères qui doivent être encodés en pourcent.
Pourquoi la longueur des sorties Base58, Base62 et Base36 varie-t-elle ?
Ces encodages traitent l’entrée comme un seul grand nombre : la longueur dépend donc de sa valeur autant que du nombre d’octets. Le Base64, le Base32 et l’hex convertissent des groupes de bits fixes et donnent toujours la même longueur pour le même nombre d’octets.
Comment la détection automatique décide-t-elle de la nature de ma chaîne ?
Elle confronte l’entrée aux règles de chaque format, du plus caractéristique (délimiteurs comme <~ ou begin 644) au plus générique, et décode avec la première correspondance. Une chaîne courte peut être valide dans plusieurs formats ; les boutons Lire comme permettent d’en choisir une autre lecture.
Ces encodages protègent-ils les données ?
Non. N’importe qui peut les inverser sans clé. Ils servent seulement à rendre les octets imprimables. Voir encodage ou chiffrement.