Codificatore e decodificatore Base45
«AB» diventa BB8 in Base45, la codifica dell'RFC 9285 che tiene i dati entro i 45 caratteri che un codice QR legge in modalità alfanumerica, come fanno i certificati COVID digitali dell'UE. La decodifica riporta il testo. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Testo
- AB
- Modalità di calcolo
- Encode
- Risultato
- BB8
- Codifica
- base45
- Byte input
- 2
- Byte output
- 3
Questo codificatore Base45 converte testo semplice in RFC 9285 Base45 e decodifica stringhe Base45 di nuovo in testo UTF-8 usando l'alfabeto alfanumerico a quarantacinque caratteri dei codici QR. Il motore è completamente deterministico: lo stesso input e la stessa modalità producono sempre lo stesso risultato, senza chiamate di rete, sale casuale o scorciatoie legate alla data. Controlli classici includono la codifica di AB in BB8, Hello!! in una stringa che include uno spazio, e base-45 in UJCLQE7W581.
Cos'è Base45 e cosa restituisce questo strumento
Base45 è la codifica binario-a-testo definita nell'RFC 9285 per i dati che viaggeranno dentro codici QR in modalità alfanumerica. L'alfabeto è il set fisso di quarantacinque caratteri: zero-nove, A-Z, spazio, dollaro, percento, asterisco, più, meno, punto, barra e due punti. La codifica interpreta ogni coppia di byte di input come un intero senza segno a sedici bit n uguale ad a per duecentocinquantasei più b, quindi scrive n come tre cifre in base quarantacinque con la cifra meno significativa a sinistra.
Un byte residuo finale diventa solo due cifre. Questo design si adatta al pacchettamento alfanumerico QR meglio di Base64, che richiede più, barra e il padding scomodi in modalità alfanumerica QR. Questa pagina segue sempre quel contratto: la modalità encode codifica il vostro testo in UTF-8, impacchetta i byte, e restituisce solo caratteri dell'alfabeto; la modalità decode inverte il processo e rifiuta caratteri fuori dall'alfabeto, gruppi incompleti la cui lunghezza modulo tre è uno, e qualsiasi tripletta di tre caratteri il cui valore numerico supera sessantacinquemilacinquecentotrentacinque.
Come vengono letti testo e modalità e come i risultati restano riproducibili
Encode accetta qualsiasi stringa Unicode, la converte con il TextEncoder della piattaforma in byte UTF-8, quindi emette gruppi Base45 come specificato sopra. Decode richiede una stringa Base45 pura: una lunghezza modulo tre uguale a uno viene rifiutata perché non può rappresentare un numero intero di byte, e qualsiasi carattere fuori dall'alfabeto fallisce con un indice e un carattere chiari. Dopo il recupero delle cifre, ogni tripletta viene verificata contro il tetto a sedici bit così stringhe come GGW, che decodificherebbero oltre sessantacinquemilacinquecentotrentacinque, falliscono invece di andare in overflow.
Le code a due caratteri devono decodificare a un singolo byte al massimo duecentocinquantacinque. Una decodifica UTF-8 fatale assicura poi che i dati binari spuri non diventino testo illeggibile.
Dove si usa Base45 nei codici QR
I team frontend decodificano segmenti Base45 scansionati durante il debug di integrazione senza incollare i dati in script ad hoc che usano accidentalmente l'alfabeto sbagliato. I servizi backend codificano piccoli blob binari prima di inserirli in generatori QR che accettano solo la modalità alfanumerica. Gli ingegneri di qualità generano coppie deterministiche di codifica e decodifica per test contrattuali così un middleware che dichiara supporto Base45 non può passare in silenzio a tabelle diverse o accettare triplette sovradimensionate.
Gli educatori usano lo stesso strumento quando insegnano come interagiscono la modalità alfanumerica QR, le coppie di simboli a quindici bit, e Base45, inclusi i classici esempi RFC AB in BB8 e Hello!! con il suo spazio incorporato.
Domande frequenti
In cosa Base45 è diverso da Base64?
Base45 usa l'alfabeto alfanumerico QR a 45 caratteri e impacchetta due byte in tre caratteri. Non ha padding ed è progettato per i codici QR, non per email o segmenti JWT.
Cos'è una tripletta Base45 non valida?
Un gruppo di tre caratteri il cui valore supera 65535 (per esempio GGW).
Il risultato è deterministico?
Sì. Lo stesso testo e la stessa modalità producono sempre lo stesso risultato senza rete, casualità o comportamenti legati alla data.
Perché il risultato in Base45 contiene degli spazi?
Perché lo spazio è uno dei 45 caratteri di Base45, insieme alle cifre, alle maiuscole e a simboli come $, %, * e +. «Hello!!» produce una stringa con uno spazio, quindi copi il risultato intero, spazi compresi, prima di decodificarlo.
Di quanto si allunga un testo in Base45?
Ogni due byte diventano tre caratteri, e un byte rimasto alla fine ne diventa due. Per questo «AB», che occupa due byte, diventa BB8. Per i codici QR è più compatto di Base64 senza uscire dalla modalità alfanumerica.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"text": "AB"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.base45",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Base45 impacchetta due byte in tre caratteri e un byte residuo in due caratteri, il che è più compatto per i payload QR rispetto a Base64 pur restando dentro il set di caratteri alfanumerico sicuro per QR che gli scanner già si aspettano. Lo schema alimenta i Certificati COVID Digitali UE e altre credenziali verificabili QR che devono trasportare dichiarazioni binarie senza uscire dal set di caratteri sicuro per QR. Usatelo gratis nel browser per il debug e l'insegnamento delle credenziali, oppure chiamate l'API a $0.002 per richiesta riuscita quando le pipeline hanno bisogno di trasformazioni Base45 riproducibili in CI e servizi backend.
Cos'è Base45 e cosa restituisce questo strumento
La risposta JSON include result per la stringa trasformata, mode che riporta encode o decode, encoding fissato a base45, e input_bytes più output_bytes così potete verificare le dimensioni nei test. Non c'è percorso di streaming e nessun ripiego silenzioso su Base64: o la stringa è testo Base45 valido oppure la richiesta fallisce con invalid_input. Se vi serve il Base64url standard per i JWT, usate un endpoint Base64url dedicato; questa landing è solo per l'alfabeto RFC 9285 usato dalle credenziali verificabili QR.
Come vengono letti testo e modalità e come i risultati restano riproducibili
Il campo preferito del payload è text, con gli alias input, value e s così form, query string e client SDK possono riusare lo stesso contratto senza rinominare colonne. Mode è predefinito su encode e accetta esplicitamente decode; gli alias op, direction e action mappano allo stesso interruttore per script che già usano quei nomi. Abbinate l'esecuzione gratuita nel browser di questa pagina all'API a pagamento quando vi serve lo stesso risultato matematico dentro una pipeline automatizzata senza reimplementare da soli le tabelle Base45. Gli input non validi restituiscono invalid_input e non vengono addebitati, il che mantiene economica la validazione mentre le trasformazioni riuscite restano a un prezzo fisso per elemento di $0.002.
Dove si inserisce Base45 in credenziali QR, API e fixture di test
In questa pagina il lavoro viene svolto interamente nel browser; tramite l'API ogni ricerca riuscita costa $0.002, la convalida fallita non viene addebitata e nulla viene conservato dopo la restituzione della risposta. Questa divisione — esplorazione interattiva gratuita e API a pagamento identica — corrisponde al resto del catalogo tier A del KIT e permette di passare da una dimostrazione in aula a una pipeline automatizzata senza cambiare il risultato codificato. Abbinatelo agli helper CBOR o dei certificati quando vi servono altri passaggi di credenziali correlati, e agli altri endpoint di codifica quando state costruendo un piccolo laboratorio di strumenti di testo gratuiti e deterministici.
Casi di integrazione
Credenziali verificabili QR
Codificate o decodificate payload RFC 9285 Base45 usati dai Certificati COVID Digitali UE e da altre credenziali verificabili trasportate su QR.
Fixture QR alfanumeriche
Trasformate breve testo binary-safe in Base45 così i generatori QR possono usare la modalità alfanumerica senza uscire dall'alfabeto a 45 caratteri.
Fixture CI deterministiche
Generate stringhe Base45 riproducibili per unit test, file golden e controlli contrattuali tra servizi di wallet e scanner.
Domande tecniche
Quanto costa il codificatore Base45?
È gratuito nel browser su questa pagina. Tramite l'API una richiesta riuscita costa $0.002; gli input non validi non vengono addebitati.
Quali modalità sono supportate?
mode=encode (predefinito) trasforma testo semplice in Base45. mode=decode trasforma una stringa Base45 di nuovo in testo UTF-8.