Encodeur Crockford Base32
« Hello » devient 91JPRV3F en Crockford Base32, un alphabet sans I, L, O ni U, pour que numéros de série et codes d'assistance résistent à la dictée au téléphone et à la saisie manuelle. Un symbole de contrôle optionnel repère un caractère mal tapé. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Texte
- Hello
- Mode de calcul
- Encode
- Résultat
- 91JPRV3F
- Longueur
- 8
- Octets d'entrée
- 5
- Alphabet
- Crockford
Crockford Base32 est un alphabet d’encodage pratique conçu pour les personnes qui lisent et saisissent des identifiants à la main. Il écarte les symboles qui prêtent le plus à confusion—I, L, O et U—afin qu’un numéro de série, un jeton court ou un code d’assistance survivent aux clients de messagerie, aux notes papier et aux lectures au téléphone. Cet encodeur et décodeur Crockford Base32 convertit du texte UTF-8 vers cet alphabet et inversement, accepte les tolérances humaines habituelles (minuscules, traits d’union, O comme zéro, I et L comme un) et peut ajouter ou vérifier le symbole de contrôle optionnel modulo 37 de Crockford lorsque vous devez détecter des erreurs de transcription.
Ce qu’est Crockford Base32 et en quoi il diffère du Base32 RFC 4648
Le Base32 standard (RFC 4648) utilise A–Z et 2–7 avec un rembourrage par signes égal. Cet alphabet convient aux formats filaires et au MIME, mais il est malaisé pour les humains : le I majuscule ressemble au un, le O majuscule au zéro, et le U brouille les codes dictés à voix haute.
L’alphabet Base32 de Douglas Crockford conserve trente-deux symboles—chiffres de zéro à neuf plus A à Z sans I, L, O ni U—afin que chaque glyphe restant soit facile à imprimer, à lire à haute voix et à taper. Le décodage est délibérément tolérant : des traits d’union peuvent séparer des groupes pour la lisibilité, la casse n’importe pas, la lettre O est traitée comme le chiffre zéro, et les lettres I et L comme le chiffre un.
Il n’y a pas de rembourrage par signes égal ; les groupes finaux incomplets de cinq bits sont tout de même émis comme symbole final à l’encodage, conformément aux implémentations Crockford courantes pour les chaînes courtes. Un symbole de contrôle optionnel tiré d’un ensemble de trente-sept symboles (les trente-deux de données plus astérisque, tilde, dollar, égal et U) est le reste de la valeur de la chaîne de symboles modulo trente-sept. Ajoutez-le lorsque les étiquettes seront resaisies ; vérifiez-le au décodage lorsque check vaut true.
Cette capacité applique ce contrat centré sur l’humain au texte UTF-8 avec un empaquetage de bits déterministe, de sorte que la même entrée produit toujours la même chaîne Crockford et que le décodage inverse restaure les octets d’origine lorsque la charge est de l’UTF-8 valide.
Où un encodeur Crockford Base32 apporte une valeur concrète
Les équipes produit et opérations utilisent Crockford Base32 pour de courts identifiants publics que le support doit lire au téléphone sans épeler I contre un à chaque caractère. L’entrepôt et les étiquettes d’actifs gagnent avec des groupes à traits d’union et un symbole de contrôle optionnel qui attrape un chiffre mal saisi avant qu’un mauvais emplacement ne soit choisi.
Les développeurs de jetons compacts de type ULID ou personnalisés veulent un encodeur avec l’alphabet Crockford attendu, pas l’ensemble 2–7 de RFC 4648, et un décodeur qui accepte un collage désordonné depuis un chat ou un PDF. Les exercices de cours et d’entretien sur les encodages lisibles ont besoin d’un oracle déterministe qui rejette U dans les données et explique les écarts de contrôle au lieu de renvoyer des déchets.
Gardez des charges modestes, figez les chaînes result dans les tests automatisés, et vous obtenez un Crockford Base32 reproductible pour étiquettes, codes d’assistance et workers en périphérie sans monter votre propre bibliothèque d’alphabet.
Cas d’usage
Codes d’assistance et tickets lisibles
Encodez de courtes références pour que les agents les lisent à voix haute sans confusions I/L/O ; décodez les collages avec traits d’union ou minuscules.
Pipelines de jetons et d’identifiants
Générez et vérifiez des charges Crockford Base32 dans scripts et workers avec la même logique pure que l’outil gratuit du navigateur.
Questions fréquentes
Quel alphabet utilise Crockford Base32 ?
Chiffres 0–9 et lettres A–Z hors I, L, O et U (trente-deux symboles). Le décodage accepte minuscules, traits d’union, O comme 0 et I/L comme 1.
En quoi cela diffère-t-il du Base32 RFC 4648 ?
RFC 4648 utilise A–Z et 2–7 avec rembourrage '='. Crockford écarte les lettres ambiguës, utilise 0–9 et un autre jeu de lettres, omet le rembourrage et propose un symbole de contrôle optionnel.
Que se passe-t-il si j’envoie un caractère invalide ?
U n’est pas valide dans l’alphabet de données (il ne peut apparaître que comme symbole de contrôle).
À quoi sert le symbole de contrôle de Crockford ?
C'est un caractère supplémentaire : le reste de la division de la valeur du code par 37, pris parmi les 32 symboles de données plus *, ~, $, = et U. Ajoutez-le aux étiquettes qui seront ressaisies ; au décodage avec le contrôle activé, un dernier caractère erroné fait échouer le décodage.
Puis-je décoder un code avec des tirets ou en minuscules ?
Oui. Les tirets entre les groupes sont ignorés, la casse ne compte pas, la lettre O est lue comme zéro et les lettres I et L comme un : un texte collé depuis une messagerie ou un PDF se décode quand même. La lettre U est refusée dans les données.
Outils associés
Pour les développeurs — accès API
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.
Endpoint
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é.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/enc/base32-crockford \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello"}'const res = await fetch("https://api.kit.forhosting.com/enc/base32-crockford", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/base32-crockford",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/base32-crockford", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/base32-crockford", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"text": "Hello"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.base32_crockford",
"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.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
La même logique pure d’analyse alimente l’outil gratuit du navigateur et le chemin API facturé, de sorte que scripts pédagogiques, étiquettes d’inventaire et workers de production ne divergent jamais d’un caractère. Une entrée mal formée échoue avec invalid_input et un message clair qui nomme le symbole incorrect ou l’écart de contrôle, au lieu d’une corruption silencieuse.
Contrat d’entrée, forme de la réponse et comportement d’erreur
Un texte vide encode vers un résultat vide. La longueur est plafonnée pour que les collages trop longs échouent tôt. Une validation échouée n’est pas facturée. Envoyez en POST un corps JSON avec le champ chaîne obligatoire text et les optionnels mode et check. Mode vaut encode ou decode et vaut encode par défaut ; les alias op, operation et direction sont acceptés. Check est un booléen à false par défaut ; s’il est true à l’encodage, l’API ajoute le symbole de contrôle Crockford et le renvoie comme check_symbol ; s’il est true au décodage, le caractère final doit correspondre au reste modulo trente-sept, sinon la tâche échoue avec invalid_input. En cas de succès d’encode, le corps inclut mode, le text d’origine, result (la chaîne Crockford), length, input_bytes, alphabet Crockford, un résumé de charset, l’indicateur check et l’étiquette standard. En cas de succès de decode, vous obtenez mode, text, result (chaîne UTF-8), length, output_bytes, les mêmes métadonnées d’alphabet et, si check a été demandé, check_verified plus le check_symbol validé. Sans check, le décodage traite toute la chaîne comme données après suppression des traits d’union et application des alias O/I/L ; tout caractère hors de l’alphabet de données—y compris un U isolé dans la charge—lève invalid_input en indiquant la position et le caractère. Un mode invalide ou un check non booléen échouent aussi avec invalid_input. Enchaînez encode puis decode dans vos tests avec check true et false afin que les goldens figent l’alphabet, les alias et l’arithmétique de contrôle entre runtimes.
Où un encodeur Crockford Base32 apporte une valeur concrète
Comme l’implémentation est pure parse de niveau A, chaque appel réussi coûte le prix de base publié $0.002 sans jetons de modèle ni réseau sortant.
Cas d'intégration
Étiquettes d’actif avec symbole de contrôle optionnel
Imprimez des étiquettes Crockford avec check=true pour qu’une seule faute de frappe fasse échouer la vérification avant de déplacer l’inventaire au mauvais endroit.
Questions techniques
Que fait l’option check ?
À l’encodage, check=true ajoute un symbole de contrôle modulo 37 du jeu de trente-sept symboles. Au décodage, check=true exige ce symbole final et rejette les écarts.
Combien coûte l’encodeur Crockford Base32 ?
L’outil navigateur est gratuit. Les requêtes API utilisent le solde prépayé KIT à $0.002 par appel réussi ; l’entrée invalide n’est pas facturée.