Tous les articles

Base32 : en quoi il diffère de Base64 et quand il est plus pratique

Base32 répond à un problème très précis : quand une chaîne doit être lue, dictée au téléphone ou recopiée à la main, un alphabet de 32 caractères laisse bien moins de place à l'erreur que les 64 symboles de Base64.

Le cas classique : configurer la double authentification sans QR code

Quand une application comme Google Authenticator n'arrive pas à scanner le QR code, elle propose une « clé de configuration » à saisir manuellement — cette clé est en Base32, pas en Base64. La norme TOTP l'exige précisément parce que ce format est pensé pour être recopié sans ambiguïté, y compris par quelqu'un qui lit l'écran à voix haute à un collègue.

Un alphabet pensé pour résister à la dictée

Base32 exclut totalement 0, 1, 8, 9 ainsi que les lettres O, I, L — exactement les caractères qu'on confond le plus facilement à l'oral ou sur un écran de mauvaise qualité. En français, épeler une clé au téléphone en distinguant « zéro » du « O » de « Oscar » dans l'alphabet radio reste source d'erreurs ; Base32 supprime le problème à la racine en n'utilisant jamais la lettre O.

Où on le rencontre concrètement

  • Les adresses .onion du réseau Tor : les 56 caractères du sous-domaine encodent une clé publique Ed25519 en Base32.
  • Les étiquettes DNS et sous-domaines, qui ne distinguent pas majuscules et minuscules par définition du protocole.
  • Les codes de parrainage ou coupons imprimés sur un ticket, qu'un client doit ressaisir à la main sur un site.

Le prix de la lisibilité : des chaînes plus longues

Avec moins de symboles disponibles, chaque octet nécessite plus de caractères pour être représenté — le résultat est environ 60 % plus long qu'en Base64. Pour un secret de 20 octets, la différence est négligeable ; pour un fichier de plusieurs mégaoctets, Base32 n'a plus aucun intérêt face à Base64.

Base32 et Base32hex ne sont pas interchangeables

La RFC 4648 définit aussi Base32hex, qui utilise l'alphabet 0–9A–V au lieu de A–Z2–7 et conserve le même ordre de tri pour les chaînes que pour les octets d'origine — une propriété utile à certaines bases de données. Une chaîne encodée avec une variante ne se décode pas correctement avec l'autre, mieux vaut donc vérifier laquelle est réellement attendue avant de décoder.

Essayer l'outil