Encodeur et décodeur Base62

Convertissez du texte, des octets hexadécimaux ou des fichiers en Base62, et inversement. La sortie ne contient que des chiffres et des lettres : elle s’utilise sans échappement dans les URL, les noms de fichiers et les identifiants.

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

Mode d’emploi

  1. Choisissez Encoder pour transformer du texte en Base62, ou Décoder pour reconvertir du Base62 en texte.
  2. Sélectionnez l’ordre d’alphabet qu’utilise votre système : 0-9 A-Z a-z (par défaut) ou 0-9 a-z A-Z.
  3. Saisissez ou collez votre entrée, ou ouvrez un petit fichier (jusqu’à environ 20 Ko).
  4. Copiez le résultat ou téléchargez-le sous forme de fichier.

Qu’est-ce que Base62 ?

Base62 utilise les dix chiffres, les 26 lettres majuscules et les 26 lettres minuscules. C’est le plus grand alphabet composé uniquement de lettres et de chiffres : le résultat ne nécessite donc aucun échappement dans les URL, les noms de fichiers, les clés de base de données ou les identifiants dans le code. Chaque caractère porte environ 5,95 bits, si bien que la sortie fait environ 1,34 fois la taille de l’entrée : presque aussi compact que Base64, mais sans +, /, =, - ni _.

Comme 62 n’est pas une puissance de deux, cet outil traite l’entrée entière comme un seul grand nombre et la convertit en base 62, à la manière de Base58 et Base36. Chaque octet nul de tête est écrit sous la forme d’un 0 initial afin d’être conservé lors de l’aller-retour. L’entrée est limitée à environ 20 Ko, car les calculs ralentissent sur de grandes quantités de données.

Il n’existe pas de norme Base62 unique

Contrairement à Base64, Base62 n’a pas de RFC, et les implémentations diffèrent sur des points qui rendent leurs sorties incompatibles :

  • Ordre de l’alphabet. Cet outil propose 0-9A-Za-z (par défaut) et 0-9a-zA-Z. D’autres bibliothèques placent les lettres avant les chiffres.
  • Zéros de tête. Certaines implémentations conservent un 0 par octet nul de tête, comme cet outil, d’autres les suppriment, et les formats à longueur fixe complètent le résultat jusqu’à une largeur donnée.
  • Ce qui est encodé. Beaucoup de fonctions Base62 encodent un entier, comme un identifiant de base de données, plutôt qu’une suite d’octets. D’autres découpent les données en blocs de taille fixe.

Si une chaîne provenant d’un autre système donne ici un résultat incohérent, essayez l’autre option d’alphabet. Si cela échoue encore, ce système utilise probablement une autre méthode.

Où Base62 est utilisé

Les raccourcisseurs d’URL transforment un identifiant auto-incrémenté en code court : sept caractères Base62 couvrent plus de 3 500 milliards de valeurs. Les identifiants triables comme KSUID utilisent une forme Base62 fixe de 27 caractères, et de nombreux services emploient Base62 pour les clés d’API et les jetons, car un double-clic sélectionne toute la chaîne et celle-ci peut être collée n’importe où. Pour convertir un seul entier, utilisez le convertisseur de bases numériques, ou quelques lignes de code :

// JavaScript : entier (BigInt) vers Base62
const A = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
function toBase62(n) {
  let s = '';
  do { s = A[Number(n % 62n)] + s; n /= 62n; } while (n > 0n);
  return s;
}
toBase62(123456789n);   // '8M0kX'

Spécifications

Alphabet0-9 A-Z a-z
Taille de sortieEnviron 134 % (conversion en grand entier)
RemplissageAucun
NormeAucune norme officielle
Sensible à la casseOui

Exemples

Entrée (UTF-8)Sortie
Hello, World!1wJfrzvdbtXUOlUjUf
Base64.isNWxjrFq4r3rv
你好19PqtKE1t

Questions fréquentes

Base62 est-il compatible avec les URL ?
Oui. Il n’utilise que A-Z, a-z et 0-9, qui ne nécessitent jamais d’échappement dans les URL. Base64URL est lui aussi compatible URL, mais il contient les caractères - et _.
Pourquoi ma chaîne Base62 se décode-t-elle en un texte erroné ?

Les implémentations de Base62 diffèrent par l’ordre de l’alphabet et par la méthode. Passez de l’alphabet 0-9A-Za-z à 0-9a-zA-Z, ou inversement. Si aucun ne fonctionne, la chaîne a probablement été produite à partir d’un entier ou avec un autre algorithme.

Base62 est-il sensible à la casse ?

Oui. Les majuscules et les minuscules représentent des valeurs différentes : une chaîne Base62 ne doit jamais être convertie en majuscules ou en minuscules.

Faut-il choisir Base62 ou Base58 ?
Base58 exclut 0, O, I et l pour éviter les confusions lors d’une recopie à la main. Base62 conserve toutes les lettres et tous les chiffres, et produit des chaînes légèrement plus courtes. Choisissez Base58 pour les chaînes que des personnes saisissent, et Base62 pour celles que traitent des machines.