Mode d’emploi
- Saisissez votre alphabet, ou choisissez un préréglage et modifiez-le. Chaque caractère ne peut apparaître qu’une seule fois.
- Choisissez la méthode : « Grand entier » pour toute longueur d’alphabet, ou « Groupes de bits » pour les alphabets de 2, 4, 8, 16, 32 ou 64 caractères.
- Avec les groupes de bits, indiquez si besoin un caractère de remplissage qui ne fait pas partie de l’alphabet.
- Encodez votre texte, ou collez une chaîne écrite dans votre alphabet pour la décoder.
Deux façons d’associer des octets à des caractères
La méthode grand entier fonctionne comme Base58. L’entrée entière est lue comme un seul grand entier, divisé encore et encore par la longueur de l’alphabet ; chaque reste désigne un caractère. Elle fonctionne avec n’importe quel alphabet d’au moins 2 caractères, par exemple 10, 36, 58 ou 62. Les octets nuls de tête sont écrits avec le premier caractère de l’alphabet : ils survivent donc à un aller-retour. Il n’y a pas de remplissage, et l’entrée est limitée à environ 20 Ko, car les calculs deviennent lents sur de longues données.
La méthode groupes de bits fonctionne comme la RFC 4648. L’entrée est découpée en morceaux d’un nombre fixe de bits : 1 bit pour un alphabet de 2 caractères, 4 bits pour 16, 5 bits pour 32 et 6 bits pour 64. Chaque morceau est un indice dans l’alphabet. C’est exactement ainsi que fonctionnent l’hexadécimal, Base32 et Base64, et la longueur de la sortie ne dépend que de celle de l’entrée.
Pourquoi les deux méthodes donnent des résultats différents
L’une encode la valeur numérique des données, l’autre leurs bits, position par position. Les résultats diffèrent généralement, et une chaîne doit être décodée avec la méthode qui l’a produite.
| Alphabet | Entrée | Groupes de bits | Grand entier |
|---|---|---|---|
| Base64 standard | Hi | SGk= | Ehp |
| Base32 RFC 4648 | Hi | JBUQ==== | SDJ |
01 | A | 01000001 | 1000001 |
0123456789 | Hi | non disponible | 18537 |
Avec les groupes de bits et = comme remplissage, les alphabets standard reproduisent le Base64 et le Base32 habituels. La méthode grand entier supprime le bit nul de tête de A, car elle écrit une valeur et non un nombre fixe de bits. Avec les dix chiffres pour alphabet, elle affiche simplement les octets de Hi sous forme de nombre décimal.
Le caractère de remplissage ne s’applique qu’aux groupes de bits. La sortie est complétée jusqu’à un multiple de 4 caractères pour les alphabets de 64 caractères, et jusqu’à un multiple de 8 pour les alphabets de 32 et de 8 caractères. Avec 2, 4 ou 16 caractères, chaque octet remplit des caractères entiers : le remplissage n’est donc jamais nécessaire.
Règles d’un alphabet valide
- Au moins deux caractères.
- Pas de doublons. Le décodeur fait correspondre chaque caractère à une seule valeur. Si
areprésentait à la fois 0 et 10, une chaîne qui le contient ne pourrait pas être décodée. - La casse compte.
aetAsont des caractères différents. - Le caractère de remplissage ne doit pas figurer dans l’alphabet, sinon il serait impossible de le distinguer des données.
Tout s’exécute dans votre navigateur : votre alphabet et vos données restent sur votre appareil.
Quand un alphabet personnalisé est utile
- Identifiants masqués. Un alphabet mélangé transforme des identifiants en jetons sans motif apparent. Cela masque sans protéger : toute personne qui connaît l’alphabet peut les décoder.
- Formats propriétaires ou anciens. Recopiez l’alphabet propre à un système depuis sa documentation et décodez directement ses données.
- Apprentissage. Comparez différentes longueurs d’alphabet et les deux méthodes pour comprendre le fonctionnement des changements de base. Pour des alphabets fixes, consultez Base58 et Base62.
Questions fréquentes
Quelle est la différence entre grand entier et groupes de bits ?
La méthode grand entier convertit l’entrée entière, vue comme un seul entier, dans la nouvelle base, à la manière de Base58, et fonctionne avec toute longueur d’alphabet. Les groupes de bits découpent l’entrée en morceaux de bits de taille fixe, à la manière de Base64, et exigent un alphabet de 2, 4, 8, 16, 32 ou 64 caractères.
Pourquoi mon alphabet Base64 personnalisé ne donne-t-il pas la même sortie que le Base64 standard ?
Le Base64 standard utilise des groupes de bits. Choisissez la méthode « Groupes de bits » et indiquez = comme « Caractère de remplissage » pour obtenir le même résultat. La méthode grand entier produit une chaîne complètement différente à partir du même alphabet.
Pourquoi les caractères en double sont-ils interdits ?
Chaque caractère doit se décoder en une seule valeur. Un caractère répété aurait deux significations, et les données d’origine ne pourraient pas être retrouvées de façon fiable.
Puis-je utiliser un caractère de remplissage avec la méthode grand entier ?
Non. La sortie en grand entier n’a pas de taille de bloc fixe : il n’y a donc rien à compléter. L’option de remplissage ne s’applique qu’aux groupes de bits.
Un alphabet personnalisé est-il une forme de chiffrement ?
Non. Il s’agit toujours d’un encodage sans clé. Un alphabet mélangé peut rendre les données plus difficiles à reconnaître au premier coup d’œil, mais il ne doit jamais servir à protéger des secrets.