UTILS.
100 % dans le navigateur
🔢

Encodeur et décodeur Base62

Convertissez des entiers ou des chaînes d'octets vers et depuis le Base62 compact et sûr pour les URL (0-9A-Za-z), avec prise en charge de BigInt et une variante d'alphabet GMP, dans le navigateur.

— la sortie apparaît ici —

À propos de cet outil

L'outil Base62 encode des nombres et des chaînes d'octets dans l'alphabet compact de 62 symboles 0-9A-Za-z et les décode. Le Base62 est populaire pour les identifiants courts, les slugs d'URL et les liens raccourcis car il reste sûr pour les URL, sans les caractères +, / ou = qu'utilise le Base64. Toute la conversion s'exécute localement dans votre navigateur avec le BigInt de JavaScript, de sorte que les valeurs arbitrairement grandes sont exactes et que rien n'est téléversé.

Le mode entier traite l'entrée comme un entier à précision arbitraire (décimal, ou hexadécimal préfixé par 0x) : l'encodage divise de façon répétée par 62 et ajoute alphabet[reste] en tête, et le décodage calcule Σ alphabet.indexOf(ch)·62^position. Le mode octets traite les octets d'entrée (texte UTF-8 ou hexadécimal) comme un seul grand nombre big-endian et applique la même conversion en base 62, mais il préserve aussi les octets nuls initiaux à la manière du Base58 de Bitcoin : chaque octet 0x00 initial devient un caractère '0' initial pour que les allers-retours soient sans perte.

L'alphabet standard ordonne les chiffres, puis les majuscules, puis les minuscules (0-9A-Za-z). Certaines bibliothèques — notamment celles bâties sur GMP — ordonnent les chiffres, les minuscules, puis les majuscules (0-9a-zA-Z), ce qui produit une sortie différente pour la même valeur ; le sélecteur d'alphabet vous permet de correspondre à celui que votre système utilise. Choisissez la direction, le mode entier ou octets, le format d'entrée pour les octets, et la variante d'alphabet.

Foire aux questions

Quelle est la différence entre le mode entier et le mode octets ?
Le mode entier convertit un unique nombre à précision arbitraire (décimal ou hexadécimal 0x) en chaîne Base62 puis de nouveau en entier décimal. Le mode octets convertit une séquence d'octets (à partir de texte UTF-8 ou d'hexadécimal) comme un grand nombre big-endian, et préserve les octets nuls initiaux sous forme de caractères zéro d'alphabet initiaux, afin que les données binaires fassent un aller-retour exact.
Pourquoi y a-t-il deux alphabets ?
L'alphabet standard est 0-9A-Za-z (majuscules avant minuscules). Les bibliothèques basées sur GMP utilisent 0-9a-zA-Z (minuscules avant majuscules). La même valeur s'encode différemment selon chacun, le sélecteur vous permet donc d'interopérer avec l'ordre attendu par vos autres outils.
Quelle taille de nombre peut-il gérer ?
N'importe quelle taille. L'outil utilise le BigInt de JavaScript, il n'y a donc pas de limite de précision à 2^53 — vous pouvez encoder et décoder exactement des entiers et des chaînes d'octets de longueur arbitraire, ce qui est essentiel pour les hachages, les UUID et les identifiants longs.
Comment les zéros initiaux sont-ils gérés en mode octets ?
Chaque octet 0x00 initial est encodé comme un caractère zéro d'alphabet initial (comme le '1' initial du Base58). Au décodage, chaque caractère zéro d'alphabet initial restaure un octet 0x00, de sorte qu'encoder puis décoder redonne la séquence d'octets d'origine exacte.

Plus d'outils