araç köşesi

Encodeur et décodeur Base32

Encodez un texte en Base32 ou décodez une chaîne Base32, y compris une clé secrète 2FA/TOTP

Vos données restent chez vous. La conversion se fait dans le navigateur ; rien n'est envoyé à un serveur.

Comment ça marche

Saisissez votre texte dans le panneau de gauche, ou collez la chaîne Base32 à décoder, puis choisissez Encoder ou Décoder dans le réglage Sens : le résultat apparaît tout de suite à droite. Le mot « foobar » devient MZXW6YTBOI====== avec l'alphabet RFC 4648 : six octets donnent dix caractères, et les six signes = de la fin complètent la chaîne jusqu'à un multiple de huit. Pour décoder, les minuscules, les espaces et les tirets ne posent pas de problème : une clé de double authentification affichée sous la forme « jbsw y3dp ehpk 3pxp » se colle telle quelle. Si les octets décodés ne forment pas un texte lisible, ce qui est toujours le cas d'une clé 2FA, l'outil les affiche en hexadécimal au lieu de caractères illisibles et le précise sur la ligne de résultat. Si la chaîne contient un caractère absent de l'alphabet (l'alphabet RFC n'a ni 0, ni 1, ni 8, ni 9), l'outil ne devine pas : il indique la position fautive. Votre texte est traité dans votre navigateur et n'est envoyé nulle part.

Cet outil est aussi connu sous le nom de encoder base32, base32 decode.

Qu'est-ce que Base32 ?

Base32 écrit des données binaires avec seulement 32 caractères différents. Les données sont découpées en morceaux de 5 bits ; chaque morceau est un nombre de 0 à 31 qui correspond à un caractère de l'alphabet, si bien que cinq octets (40 bits) donnent exactement huit caractères. La norme de référence est la RFC 4648. Comme la casse ne compte pas et que les caractères faciles à confondre sont écartés, on l'utilise pour les clés tapées à la main, les codes de configuration 2FA et les systèmes de fichiers insensibles à la casse.

Qu'est-ce que TOTP (mot de passe à usage unique basé sur le temps) ?

TOTP est la méthode derrière le code à six chiffres qu'une application d'authentification affiche toutes les 30 secondes (RFC 6238). À la configuration, l'application et le site partagent une clé secrète, transmise dans le QR code ou sous forme de chaîne Base32 à taper. Ensuite, les deux côtés calculent le même code chacun de leur côté, à partir de cette clé et de l'heure. Quiconque connaît la clé peut produire des codes valides : la chaîne Base32 se protège comme un mot de passe.

Quelle est la différence entre Base32 et Base58 ?

Les deux évitent les caractères qui se confondent, mais ils ne fonctionnent pas de la même façon. Base32 découpe les données en groupes fixes de 5 bits : chaque caractère correspond à une place précise dans les données, il y a des blocs et du remplissage, et la casse ne compte pas. Base58 lit toutes les données comme un seul grand nombre et l'écrit en base 58 : le résultat est plus court, mais sensible à la casse et plus lent à calculer sur de longues entrées. Les clés 2FA utilisent Base32 ; les adresses Bitcoin et les identifiants IPFS, Base58.

Décoder une clé 2FA : ce que vous verrez et les précautions à prendre

La clé de configuration que vous tapez dans une application d'authentification ou un gestionnaire de mots de passe, à la place du QR code, est en Base32 : alphabet RFC 4648, en général sans remplissage et découpée en groupes de quatre. La décoder ne révèle ni mot ni mot de passe. Vous obtenez 10 ou 20 octets aléatoires, que l'outil affiche en hexadécimal. C'est normal : la clé est la graine à partir de laquelle les codes à six chiffres sont calculés.

Toute personne qui possède cette clé peut produire vos codes : protégez-la comme un mot de passe. Cette page ne peut pas l'envoyer, mais ne la gardez pas non plus dans une capture d'écran, un brouillon d'e-mail ou une application de notes. Le décodage sert surtout à vérifier que la clé a été bien recopiée : une longueur incorrecte ou un caractère étranger se voit immédiatement.

Quel alphabet choisir ?

Si la chaîne ne contient que des majuscules et les chiffres 2 à 7, c'est du Base32 RFC 4648 : clés 2FA, certains noms de fichiers et enregistrements DNS. Si elle contient 0, 1, 8 ou 9, il s'agit probablement de base32hex ou de Crockford. base32hex conserve l'ordre de tri : des octets rangés dans l'ordre donnent des chaînes rangées dans le même ordre, d'où son usage pour les clés de base de données.

Le Base32 de Crockford est conçu pour être lu et tapé par des personnes. Il écarte I, L et O, faciles à confondre avec 1 et 0, et renonce au U pour éviter la formation de mots gênants. Au décodage, il lit I et L comme 1 et O comme 0 : un code mal compris au téléphone mène quand même aux bons octets. Crockford n'utilise pas de remplissage, le réglage correspondant n'a donc pas d'effet.

  • RFC 4648 : ABCDEFGHIJKLMNOPQRSTUVWXYZ234567
  • base32hex : 0123456789ABCDEFGHIJKLMNOPQRSTUV
  • Crockford : 0123456789ABCDEFGHJKMNPQRSTVWXYZ

Questions fréquentes

Comment décoder une chaîne Base32 ?

Collez la chaîne dans le panneau de gauche et choisissez Décoder. Si le résultat est un texte lisible, vous voyez le texte ; sinon les octets s'affichent en hexadécimal. Les minuscules, les espaces et l'absence des signes = finaux ne gênent pas.

Quelle est la différence entre Base32 et Base64 ?

Base64 utilise 64 caractères et donne un résultat plus court : 3 octets deviennent 4 caractères. Base32 n'utilise que des majuscules et des chiffres, et 5 octets deviennent 8 caractères, soit environ 20 % de plus. En échange, la casse ne compte pas, la chaîne se lit à voix haute et ne pose aucun problème dans un nom de fichier. C'est pour cela que les clés 2FA sont en Base32.

À quoi servent les signes = à la fin ? Puis-je les supprimer ?

Base32 travaille par blocs de 5 octets. Quand le dernier bloc est incomplet, des signes = complètent la chaîne jusqu'à un multiple de 8 caractères. Cet outil décode avec ou sans remplissage, et beaucoup d'applications, dont les applications 2FA, ne l'écrivent jamais. Vérifiez si le système qui lira votre chaîne l'attend.

Que signifie l'erreur « ne tombe pas sur un nombre entier d'octets » ?

En Base32, le dernier bloc ne peut jamais compter 1, 3 ou 6 caractères : ces longueurs ne correspondent à aucun nombre d'octets. Si vous voyez cette erreur, un caractère a été perdu ou ajouté pendant la copie. Recopiez la chaîne depuis la source.