Encodeur et décodeur Base32

Convertissez du texte, des octets hexadécimaux ou des fichiers en Base32, et inversement. Choisissez l’alphabet RFC 4648, Base32hex, Crockford ou z-base-32, et réglez le remplissage et la casse.

Fonctionne entièrement dans votre navigateur. Aucune donnée n’est envoyée.

Mode d’emploi

  1. Choisissez Encoder pour transformer du texte en Base32, ou Décoder pour retrouver le texte à partir du Base32.
  2. Choisissez la variante. RFC 4648 est sélectionnée par défaut ; c’est celle qu’utilisent les secrets TOTP et la plupart des bibliothèques.
  3. Saisissez ou collez vos données, ou ouvrez un fichier. Le résultat se met à jour pendant la saisie.
  4. Copiez le résultat ou téléchargez-le sous forme de fichier.

Qu’est-ce que Base32 ?

Base32 représente des données binaires à l’aide de 32 caractères imprimables. Chaque caractère transporte 5 bits : 5 octets en entrée donnent donc 8 caractères en sortie. La sortie est environ 60 % plus grande que l’entrée, un surcoût supérieur à celui de Base64, mais l’alphabet évite les minuscules et les symboles faciles à confondre.

L’alphabet standard défini dans la RFC 4648 utilise les lettres A-Z et les chiffres 2-7. Les chiffres 0, 1, 8 et 9 en sont exclus pour qu’on ne puisse pas les confondre avec les lettres O, I et B. Lorsque la longueur de l’entrée n’est pas un multiple de 5 octets, la sortie est complétée par des = jusqu’à un multiple de 8 caractères.

Où Base32 est utilisé

  • Authentification à deux facteurs. Les secrets TOTP et HOTP des applications d’authentification (la valeur secret= d’un lien otpauth://) sont des chaînes Base32.
  • Systèmes insensibles à la casse. Comme l’alphabet n’a qu’une seule casse, Base32 résiste aux systèmes de fichiers, aux étiquettes DNS et aux adresses e-mail qui ignorent la casse.
  • Codes saisis à la main. Les clés de licence, les adresses onion et les identifiants courts utilisent Base32 pour être plus faciles à dicter et à taper.

Si la taille compte davantage que la lisibilité, Base64 est plus compact. Si vous avez besoin d’identifiants courts sans caractères ambigus, comparez Crockford Base32 et Base58.

Variantes de Base32

VarianteAlphabetUsage courant
RFC 4648A-Z 2-7Secrets TOTP, usage général
Base32hex0-9 A-VOrdre de tri identique à celui des octets bruts, DNSSEC NSEC3
Crockford0-9 A-Z sans I, L, O, UIdentifiants lisibles, ULID
z-base-32minuscules, ordre permutéClés destinées aux humains, OpenPGP WKD, ZRTP

Base32 dans le code

# Python
import base64
base64.b32encode(b'hello')        # encoder
base64.b32decode('NBSWY3DP')      # décoder

// Node.js n’intègre pas Base32 ; utilisez un paquet comme "hi-base32"
// Go (import "encoding/base32")
base32.StdEncoding.EncodeToString(data)

Spécifications

AlphabetA-Z 2-7
Taille de sortie8 caractères pour 5 octets (160 %)
RemplissageComplété par = jusqu’à un multiple de 8 caractères
NormeRFC 4648, section 6
Sensible à la casseNon

Exemples

Entrée (UTF-8)Sortie
Hello, World!JBSWY3DPFQQFO33SNRSCC===
Base64.isIJQXGZJWGQXGS4Y=
你好4S62BZNFXU======

Questions fréquentes

Base32 est-il sensible à la casse ?

L’alphabet RFC 4648 est défini en majuscules, mais ce décodeur accepte aussi les entrées en minuscules. Utilisez l’option Minuscules si vous avez besoin d’une sortie en minuscules.

Pourquoi ma chaîne Base32 se termine-t-elle par des signes = ?

Les signes égal sont du remplissage qui complète le dernier bloc à 8 caractères. De nombreux systèmes, dont la plupart des applications TOTP, acceptent le Base32 sans remplissage. Désactivez le remplissage pour le supprimer.

De combien Base32 est-il plus volumineux que les données d’origine ?

Chaque groupe de 5 octets devient 8 caractères : la sortie Base32 fait donc environ 1,6 fois la taille de l’entrée. Avec Base64, c’est environ 1,33 fois.

Puis-je décoder un secret TOTP avec cet outil ?

Oui. Collez le secret dans l’onglet Décoder et choisissez la sortie Hexa pour voir les octets bruts de la clé. Les espaces dans le secret sont ignorés.