Come si usa
- Scegli Codifica per trasformare il testo in Crockford Base32, oppure Decodifica per riportarlo in testo.
- Lascia selezionata la variante Crockford e assicurati che il Padding sia disattivato. Attiva Minuscole per un output in minuscolo.
- Digita o incolla l’input, oppure apri un file. In decodifica, trattini e spazi vengono ignorati.
- Copia il risultato o scaricalo come file.
Che cos’è Crockford Base32?
Douglas Crockford ha progettato questo alfabeto Base32 per identificatori che le persone leggono, digitano e pronunciano ad alta voce. Usa le dieci cifre e 22 lettere maiuscole: 0123456789ABCDEFGHJKMNPQRSTVWXYZ. Le lettere I e L sono escluse perché somigliano alla cifra 1, la O perché somiglia allo 0, e la U per ridurre la probabilità di comporre per caso parole oscene.
Ogni simbolo trasporta 5 bit, quindi 5 byte diventano 8 caratteri, proprio come nel Base32 RFC 4648. I simboli sono in ordine ASCII crescente, per cui le stringhe senza padding scritte con lo stesso tipo di lettere si ordinano come i dati che codificano. La specifica di Crockford non prevede il padding, quindi lascia disattivata l’opzione Padding.
Decodifica tollerante
La specifica di Crockford chiede ai decodificatori di accettare ciò che le persone digitano davvero, ed è quello che fa questo strumento:
- Le lettere maiuscole e minuscole sono trattate allo stesso modo.
- La lettera O viene letta come la cifra 0, e le lettere I e L come 1.
- I trattini, che si possono inserire per rendere più leggibili i codici lunghi, vengono ignorati, così come spazi e interruzioni di riga.
La lettera U non è valida e viene segnalata insieme alla sua posizione.
Byte, numeri e ULID
Crockford descrive la sua codifica in termini di numeri, mentre questo strumento codifica una sequenza di byte in gruppi di 5 bit, alla maniera della RFC 4648, usando i simboli di Crockford. Quando il numero di bit non è un multiplo di 5, le implementazioni basate sui numeri mettono i bit zero in eccesso all’inizio, mentre questo strumento li mette alla fine, quindi i risultati possono differire.
ULID ne è un esempio comune. Usa l’alfabeto di Crockford ma codifica il suo valore a 128 bit come un numero di 26 caratteri, quindi qui i 16 byte di un ULID non producono la stessa stringa, e decodificare un ULID restituisce byte spostati di due bit. Il simbolo di controllo facoltativo previsto dalla specifica di Crockford, un carattere aggiuntivo per il valore modulo 37, non è supportato: questo strumento non lo aggiunge né lo verifica.
Specifiche
| Alfabeto | 0-9 A-Z senza I L O U |
|---|---|
| Dimensione dell’output | 8 caratteri ogni 5 byte (160%) |
| Padding | Nessuno |
| Standard | Crockford Base32 (2002) |
| Distingue maiuscole/minuscole | No |
Esempi
| Input (UTF-8) | Output |
|---|---|
Hello, World! | 91JPRV3F5GG5EVVJDHJ22 |
Base64.is | 89GQ6S9P6GQ6JWR |
你好 | WJYT1SD5QM |
Domande frequenti
Crockford Base32 distingue tra maiuscole e minuscole?
No. Per impostazione predefinita l’output è in maiuscolo, e l’opzione Minuscole lo passa in minuscolo. Il decodificatore accetta entrambe le forme, anche mescolate nella stessa stringa.
Perché nell’alfabeto mancano I, L, O e U?
I e L si confondono facilmente con 1, e O con 0, quindi sono escluse e in decodifica vengono lette come quelle cifre. La U è esclusa perché i codici casuali abbiano meno probabilità di formare parole inglesi offensive.
Questo strumento supporta il simbolo di controllo di Crockford?
* ~ $ = U. Questo strumento non lo aggiunge né lo verifica, quindi rimuovi l’eventuale simbolo di controllo prima di decodificare.Posso decodificare un ULID qui?
Non nei suoi 16 byte esatti. ULID codifica i suoi 128 bit come un unico numero con i bit in eccesso all’inizio, mentre questo strumento lavora con gruppi di byte e li mette alla fine. Usa una libreria ULID per leggere il timestamp e la parte casuale.