ForHosting KIT · Outils pour développeurs

Encodeur et décodeur z-base-32

« Hello » devient jb1sa5dx en z-base-32, l'alphabet Base32 de Zooko qui écarte le 0, le 2, le l et le v et n'ajoute aucun remplissage : les codes restent courts et se dictent ou se recopient à la main sans confusion. Gratuit dans votre navigateur.

  • Gratuit
  • Fonctionne dans votre navigateur
  • Sans inscription
  • Vos données restent sur votre appareil
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt
Si vous saisissez
Texte
Hello
Mode de calcul
Encode
Vous obtenez
Résultat
jb1sa5dx
Longueur
8
Octets d'entrée
5
Alphabet
z-base-32

z-base-32 est la variante de Base32 orientée usage humain de Zooko Wilcox-O'Hearn : un alphabet de trente-deux symboles soigneusement permuté qui favorise la lecture, l'écriture et la transcription orale, tout en compactant cinq bits par caractère. Contrairement au Base32 du RFC 4648, il écarte les paires confondantes, réordonne les symboles pour que les sons courants apparaissent plus souvent, et omet le remplissage par signes égal afin de garder des jetons courts. Cette capacité transforme du texte UTF-8 en z-base-32 minuscule ou retrouve le texte d'origine à partir d'une chaîne z-base-32.

Comment z-base-32 empaquette les bits avec l'alphabet de Zooko

z-base-32 part de la même idée de cinq bits par caractère que le Base32 classique, mais la table de symboles est entièrement différente. Les trente-deux caractères sont y b n d r f g 8 e j k m c p q x o t 1 u w i s z a 3 4 5 h 7 6 9 dans cet ordre.

Les chiffres zéro et deux, la lettre elle et la lettre vé sont exclus car ils se confondent facilement avec d'autres glyphes lorsqu'on lit un code à voix haute ou qu'on le recopie à la main. Les symboles restants sont ordonnés pour que les voyelles et les consonnes fréquentes tendent à apparaître plus tôt dans l'espace de valeurs, ce qui rend les chaînes aléatoires un peu plus prononçables.

L'encodage traite votre entrée comme des octets UTF-8, les lit comme un flux de bits continu et émet un caractère d'alphabet pour chaque cinq bits. Les bits restants en fin de flux sont complétés à droite par des zéros pour former un quintet final ; aucun signe égal n'est ajouté. Le décodage inverse la carte : chaque symbole apporte cinq bits, les octets complets sont émis dès que huit bits s'accumulent, et les bits de remplissage résiduels qui ne forment pas un octet complet sont ignorés.

Les espaces sont ignorés pour que les collages multi-lignes fonctionnent encore, et les majuscules sont ramenées en minuscules avant la recherche. Cette page n'est volontairement ni le Base32 du RFC 4648 ni Crockford Base32 ; ces alphabets et règles de remplissage sont des intentions de recherche distinctes avec d'autres cibles d'interopérabilité.

Ce que vous envoyez et ce que vous recevez

Envoyez un champ chaîne obligatoire nommé text et un champ mode optionnel valant encode ou decode. Lorsque mode est omis, encode est la valeur par défaut, de sorte qu'une charge minimale reste utile. Le mode encode traite text comme du contenu UTF-8 brut et renvoie une chaîne result en minuscules dans l'alphabet de Zooko sans remplissage.

Le mode decode traite text comme du z-base-32, normalise la casse et les espaces, valide chaque symbole et renvoie la chaîne UTF-8 récupérée dans result. Les deux sens renvoient mode, le text d'origine, result, un champ length de la sortie principale, les libellés alphabet et charset, un indicateur padding à false et une courte référence de norme pour que les clients affirment le profil atteint. Les échecs de validation ne consomment pas de solde prépayé.

Les contrôles typiques incluent l'encodage d'un mot court comme Hello, le décodage du trajet aller-retour vers le même texte, et le forçage d'une erreur en collant un symbole que z-base-32 exclut volontairement, comme le zéro ou la lettre elle. Utilisez le formulaire gratuit du navigateur pour des vérifications rapides et des démos, puis appelez le même contrat depuis des scripts lorsque vous avez besoin de jetons en masse ou de jeux de régression.

Où z-base-32 apparaît dans le travail réel

Les identifiants destinés aux personnes qui doivent être lus au téléphone, écrits sur papier ou saisis depuis une capture bénéficient d'un alphabet qui évite les glyphes ambigus. z-base-32 a été conçu pour cela : des systèmes open source comme Mnet et Tahoe-LAFS, et des protocoles comme ZRTP, l'ont adopté pour échanger des codes compacts sans les pièges du zéro contre O et du un contre I des alphabets plus denses.

Les équipes produit qui construisent des phrases de récupération hors ligne, de courts codes d'authentification air-gapped ou des jetons à usage unique pour le support préfèrent souvent la table de Zooko lorsque la chaîne sera dictée ou transcrite plutôt que seulement scannée. Les groupes d'ingénierie qui écrivent des tests d'interopérabilité ont besoin d'une seule vérité de référence pour l'encodage et le décodage, alignée sur leurs bibliothèques et sans substitution silencieuse de caractères illégaux.

Les auteurs de cours qui enseignent les schémas d'encodage veulent une page dédiée à z-base-32 plutôt que de l'enfouir sous le Base32 du RFC 4648, car on cherche Zooko, le Base32 humain et les jetons sans remplissage comme intentions séparées. Le support qui colle des codes multi-lignes depuis le chat a besoin de tolérer les espaces sans accepter des symboles pourris qui produiraient une mauvaise clé.

Si vous avez besoin du Base32 classique du RFC 4648 avec A-Z et deux à sept, de Base64 ou de Crockford Base32, traitez-les comme des pages distinctes plutôt que de surcharger cette page du codeur z-base-32.

Codes de récupération dictés et manuscrits

Encodez de courts secrets en z-base-32 pour que les utilisateurs puissent les lire à voix haute ou les noter sans confondre zéro, elle, vé ou deux avec des glyphes voisins.

Jetons hors ligne lisibles par des personnes

Produisez des identifiants compacts sans remplissage pour l'authentification air-gapped, les codes à usage unique du support ou les URL produit que l'on saisit à la main.

Quel alphabet z-base-32 utilise-t-il ?

L'alphabet permuté de Zooko ybndrfg8ejkmcpqxot1uwisza345h769. Il exclut 0, l, v et 2, et n'utilise pas de remplissage '='.

En quoi cela diffère-t-il du Base32 du RFC 4648 ?

Le RFC 4648 utilise A-Z et 2-7 avec un remplissage optionnel par signes égal. z-base-32 utilise un autre ordre de symboles, écarte les caractères ambigus et omet le remplissage. Ils ne sont pas interchangeables.

Puis-je à la fois encoder et décoder ?

Oui. Mettez mode à encode (par défaut) pour transformer du texte UTF-8 brut en z-base-32, ou mode à decode pour retrouver le texte à partir d'une chaîne z-base-32.

Que se passe-t-il si la chaîne contient un caractère invalide ?

Les symboles hors alphabet de Zooko ne sont jamais substitués. Les échecs de validation ne sont pas facturés.

Quel est le coût ?

L'outil navigateur est gratuit et s'exécute en local.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

POSThttps://api.kit.forhosting.com/enc/base32-zbase

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

curl -X POST https://api.kit.forhosting.com/enc/base32-zbase \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Hello"}'
{
  "text": "Hello"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.base32_zbase",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Le mode d'encodage empaquette vos octets dans l'alphabet ybndrfg8ejkmcpqxot1uwisza345h769 ; le mode de décodage unifie la casse, supprime les espaces et rejette tout symbole illégal avec une erreur invalid_input claire, pour qu'un caractère mal saisi ne devienne jamais en silence une charge utile fausse.

Comment z-base-32 empaquette les bits avec l'alphabet de Zooko

Un caractère hors alphabet lève invalid_input avec la position et le symbole fautif, le bon mode d'échec pour des jetons saisis sous pression. Le chemin est un empaquetage pur d'entiers, sans réseau, sans graines aléatoires et sans horodatage, de sorte que des entrées identiques produisent toujours le même JSON.

Ce que vous envoyez et ce que vous recevez

Encode signale aussi input_bytes ; decode signale output_bytes. Un text manquant, des objets non chaînes, des valeurs de mode non prises en charge, des chaînes plus longues que le maximum documenté, des caractères hors alphabet ou des octets décodés qui ne sont pas du UTF-8 valide échouent avec invalid_input et un message clair en anglais. Le tarif des appels API réussis est la base publiée de $0.002 par élément.

Où z-base-32 apparaît dans le travail réel

Comme cette capacité est un moteur de parse pur, le tarif API est la base publiée de $0.002 par élément réussi et une validation en échec ne consomme pas de solde.

Jeux d'interopérabilité pour bibliothèques de Zooko

Générez des vecteurs golden d'encodage et de décodage alignés sur les bibliothèques z-base-32 utilisées dans ZRTP, les systèmes de type Tahoe et les outils open source apparentés.

Consulter la documentation complète du KIT →