Encodeur et décodeur Base45
« AB » devient BB8 en Base45, l'encodage du RFC 9285 qui garde les données dans les 45 caractères qu'un code QR lit en mode alphanumérique, comme les certificats COVID numériques de l'UE. Le décodage retrouve le texte. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Texte
- AB
- Mode de calcul
- Encode
- Résultat
- BB8
- Encodage
- base45
- Octets d'entrée
- 2
- Octets de sortie
- 3
Cet encodeur Base45 convertit du texte brut en Base45 selon la RFC 9285 et décode des chaînes Base45 en texte UTF-8 à l'aide de l'alphabet alphanumérique à quarante-cinq caractères des codes QR. Base45 compresse deux octets en trois caractères et un octet restant en deux caractères, ce qui est plus compact pour les charges utiles QR que le Base64 tout en restant dans le mode alphanumérique déjà attendu par les scanneurs. Le schéma alimente les certificats numériques COVID de l'UE et d'autres justificatifs vérifiables en QR qui doivent transporter des données binaires sans quitter le jeu de caractères sûr pour QR. Le moteur est entièrement déterministe : la même entrée et le même mode produisent toujours le même résultat, sans appel réseau, sans sel aléatoire, et sans raccourci dépendant de la date. Parmi les vérifications classiques : encoder AB en BB8, Hello!! en une chaîne qui inclut un espace, et base-45 en UJCLQE7W581.
Ce qu'est Base45 et ce que renvoie cet outil
Base45 est l'encodage binaire-vers-texte défini dans la RFC 9285 pour des données qui voyageront à l'intérieur de codes QR en mode alphanumérique. L'alphabet est le jeu fixe à quarante-cinq caractères zéro à neuf, A à Z, espace, dollar, pourcentage, astérisque, plus, moins, point, barre oblique, et deux-points. L'encodage interprète chaque paire d'octets d'entrée comme un entier non signé sur seize bits n égal a fois deux cent cinquante-six plus b, puis écrit n sous forme de trois chiffres en base quarante-cinq avec le chiffre le moins significatif à gauche.
Un octet restant final devient seulement deux chiffres. Cette conception correspond mieux au regroupement alphanumérique QR que le Base64, qui a besoin de plus, de barre oblique, et de remplissage qui sont maladroits en mode alphanumérique QR.
Cette page suit toujours ce contrat : le mode encodage encode votre texte en UTF-8, regroupe les octets, et ne renvoie que des caractères de l'alphabet ; le mode décodage inverse le processus et rejette les caractères hors alphabet, les groupes incomplets dont la longueur modulo trois vaut un, et tout triplet de trois caractères dont la valeur numérique dépasse soixante-cinq mille cinq cent trente-cinq.
Si vous avez besoin du Base64url standard pour les JWT à la place, utilisez un point de terminaison Base64url dédié ; cette page ne concerne que l'alphabet de la RFC 9285 utilisé par les justificatifs vérifiables en QR.
Comment le texte et le mode sont lus et comment les résultats restent reproductibles
Encode accepte toute chaîne Unicode, la convertit avec le TextEncoder de la plateforme en octets UTF-8, puis émet des groupes Base45 comme spécifié ci-dessus. Decode exige une chaîne Base45 pure : une longueur modulo trois égale à un est rejetée car elle ne peut représenter un nombre entier d'octets, et tout caractère hors alphabet échoue avec un index et un caractère clairs.
Une fois les chiffres récupérés, chaque triplet est vérifié par rapport au plafond de seize bits, si bien que des chaînes telles que GGW, qui décoderaient au-delà de soixante-cinq mille cinq cent trente-cinq, échouent au lieu de déborder. Les queues à deux caractères doivent décoder en un seul octet d'au plus deux cent cinquante-cinq. Un décodage UTF-8 fatal garantit ensuite que des données binaires aléatoires ne deviennent pas du texte corrompu.
Où l'on utilise Base45 dans les codes QR
Les équipes frontend décodent les segments Base45 scannés pendant le débogage d'intégration sans coller de données dans des scripts ad hoc qui utilisent accidentellement le mauvais alphabet. Les services backend encodent de petits blobs binaires avant de les placer dans des générateurs QR qui n'acceptent que le mode alphanumérique. Les ingénieurs qualité génèrent des paires d'encodage et de décodage déterministes pour des tests de contrat afin qu'un middleware qui prétend prendre en charge Base45 ne puisse pas basculer silencieusement de table ou accepter des triplets surdimensionnés.
Les enseignants utilisent le même outil pour montrer comment le mode alphanumérique QR, les paires de symboles sur quinze bits, et Base45 interagissent, y compris les exemples classiques de la RFC AB vers BB8 et Hello!! avec son espace intégré. Associez-le aux auxiliaires CBOR ou de certificat lorsque vous avez besoin d'étapes de justificatif apparentées, et aux autres points de terminaison d'encodage pour bâtir un petit laboratoire d'outils de texte gratuits et déterministes.
Cas d’usage
Justificatifs vérifiables QR
Encodez ou décodez des charges utiles Base45 selon la RFC 9285 utilisées par les certificats numériques COVID de l'UE et d'autres justificatifs vérifiables portés par QR.
Questions fréquentes
Combien coûte l'encodeur Base45 ?
Il est gratuit dans votre navigateur sur cette page.
En quoi Base45 diffère-t-il de Base64 ?
Base45 utilise l'alphabet alphanumérique QR à 45 caractères et regroupe deux octets en trois caractères. Il n'a pas de remplissage et est conçu pour les codes QR, pas pour l'e-mail ou les segments JWT.
Qu'est-ce qu'un triplet Base45 invalide ?
Un groupe de trois caractères dont la valeur dépasse 65535 (par exemple GGW).
Le résultat est-il déterministe ?
Oui. Le même texte et le même mode produisent toujours le même résultat, sans réseau, aléa, ou comportement dépendant de la date.
Pourquoi mon résultat en Base45 contient-il des espaces ?
Parce que l'espace fait partie des 45 caractères de Base45, avec les chiffres, les majuscules et des symboles comme $, %, * et +. « Hello!! » donne une chaîne qui contient un espace : copiez donc le résultat entier, espaces compris, avant de le décoder.
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/base45 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"AB"}'const res = await fetch("https://api.kit.forhosting.com/enc/base45", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "AB"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/base45",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "AB"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/base45", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"AB"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"AB"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/base45", 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": "AB"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.base45",
"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
Utilisez-le gratuitement dans le navigateur pour le débogage de justificatifs et l'enseignement, ou appelez l'API à $0.002 par requête réussie lorsque les pipelines ont besoin de transformations Base45 reproductibles en CI et dans les services backend.
Ce qu'est Base45 et ce que renvoie cet outil
La réponse JSON inclut result pour la chaîne transformée, mode reprenant encode ou decode, encoding fixé à base45, et input_bytes plus output_bytes afin que vous puissiez vérifier les tailles dans les tests. Il n'y a aucun chemin de streaming et aucun repli silencieux vers Base64 : soit la chaîne est un texte Base45 valide, soit la requête échoue avec invalid_input.
Comment le texte et le mode sont lus et comment les résultats restent reproductibles
Le champ de charge utile privilégié est text, avec les alias input, value et s afin que formulaires, chaînes de requête et clients SDK puissent réutiliser le même contrat sans renommer de colonnes. Mode par défaut vaut encode et accepte decode explicitement ; les alias op, direction et action correspondent au même choix pour les scripts qui utilisent déjà ces noms. Associez l'exécution gratuite dans le navigateur de cette page à l'API payante lorsque vous avez besoin du même résultat mathématique au sein d'un pipeline automatisé sans réimplémenter vous-même les tables Base45. Les entrées invalides renvoient invalid_input et ne sont pas facturées, ce qui garde la validation bon marché tandis que les transformations réussies restent à un prix fixe de $0.002.
Où Base45 s'inscrit dans les justificatifs QR, les API et les fixtures de test
Sur cette page, le travail s'exécute entièrement dans votre navigateur ; via l'API, chaque recherche réussie coûte $0.002, une validation échouée n'est pas facturée, et rien n'est conservé après le renvoi de la réponse. Cette séparation — exploration interactive gratuite et API payante identique — s'inscrit dans le reste du catalogue de niveau A du KIT et permet de passer d'une démonstration en classe à un pipeline automatisé sans changer le résultat encodé.
Cas d'intégration
Fixtures QR alphanumériques
Transformez un court texte compatible binaire en Base45 afin que les générateurs QR puissent utiliser le mode alphanumérique sans quitter l'alphabet à 45 caractères.
Fixtures CI déterministes
Générez des chaînes Base45 reproductibles pour tests unitaires, fichiers golden, et vérifications de contrat entre services de portefeuille et de scanneur.
Questions techniques
Quels modes sont pris en charge ?
mode=encode (par défaut) transforme du texte brut en Base45. mode=decode transforme une chaîne Base45 en texte UTF-8.