Come si usa
- Scegli Codifica per trasformare il testo in Base32, oppure Decodifica per riportare il Base32 in testo.
- Scegli la Variante. RFC 4648 è quella predefinita, usata dai segreti TOTP e dalla maggior parte delle librerie.
- Digita o incolla l’input, oppure apri un file. Il risultato si aggiorna mentre scrivi.
- Copia il risultato o scaricalo come file.
Che cos’è Base32?
Base32 rappresenta dati binari con 32 caratteri stampabili. Ogni carattere trasporta 5 bit, quindi ogni 5 byte di input diventano 8 caratteri di output. L’output è circa il 60% più grande dell’input, un overhead maggiore rispetto a Base64, ma l’alfabeto evita le lettere minuscole e i simboli che si confondono facilmente.
L’alfabeto standard definito nella RFC 4648 usa le lettere A-Z e le cifre 2-7. Le cifre 0, 1, 8 e 9 sono escluse perché non vengano scambiate per le lettere O, I e B. Quando la lunghezza dell’input non è un multiplo di 5 byte, l’output viene completato con = fino a un multiplo di 8 caratteri.
Dove si usa Base32
- Autenticazione a due fattori. I segreti TOTP e HOTP delle app di autenticazione (il valore
secret=in un linkotpauth://) sono stringhe Base32. - Sistemi che non distinguono maiuscole e minuscole. Poiché l’alfabeto usa un solo tipo di lettere, Base32 resta intatto in file system, etichette DNS e indirizzi email che ignorano la differenza tra maiuscole e minuscole.
- Codici digitati a mano. Chiavi di licenza, indirizzi onion e identificatori brevi usano Base32 perché così è più facile leggerli ad alta voce e digitarli.
Se la dimensione conta più della leggibilità, Base64 è più compatto. Se ti servono identificatori brevi senza caratteri ambigui, confronta Crockford Base32 e Base58.
Varianti di Base32
| Variante | Alfabeto | Uso tipico |
|---|---|---|
| RFC 4648 | A-Z 2-7 | Segreti TOTP, uso generico |
| Base32hex | 0-9 A-V | Stesso ordinamento dei byte grezzi, DNSSEC NSEC3 |
| Crockford | 0-9 A-Z senza I, L, O, U | ID leggibili, ULID |
| z-base-32 | minuscolo, permutato | Chiavi pensate per le persone, OpenPGP WKD, ZRTP |
Base32 nel codice
# Python
import base64
base64.b32encode(b'hello') # codifica
base64.b32decode('NBSWY3DP') # decodifica
// Node.js non ha Base32 integrato; usa un pacchetto come "hi-base32"
// Go (pacchetto "encoding/base32")
base32.StdEncoding.EncodeToString(data)
Specifiche
| Alfabeto | A-Z 2-7 |
|---|---|
| Dimensione dell’output | 8 caratteri ogni 5 byte (160%) |
| Padding | = fino a un multiplo di 8 caratteri |
| Standard | RFC 4648, sezione 6 |
| Distingue maiuscole/minuscole | No |
Esempi
| Input (UTF-8) | Output |
|---|---|
Hello, World! | JBSWY3DPFQQFO33SNRSCC=== |
Base64.is | IJQXGZJWGQXGS4Y= |
你好 | 4S62BZNFXU====== |
Domande frequenti
Base32 distingue tra maiuscole e minuscole?
L’alfabeto RFC 4648 è definito in maiuscolo, ma questo decodificatore accetta anche input in minuscolo. Usa l’opzione Minuscole se ti serve un output in minuscolo.
Perché la mia stringa Base32 termina con dei segni =?
I segni di uguale sono il padding che completa l’ultimo blocco fino a 8 caratteri. Molti sistemi, compresa la maggior parte delle app TOTP, accettano Base32 senza padding. Disattiva il Padding per rimuoverlo.
Quanto è più grande Base32 rispetto ai dati originali?
Ogni 5 byte diventano 8 caratteri, quindi l’output Base32 è circa 1,6 volte la dimensione dell’input. Con Base64 il rapporto è di circa 1,33.
Posso decodificare un segreto TOTP con questo strumento?
Sì. Incolla il segreto nella scheda Decodifica e scegli l’output Esadecimale per vedere i byte grezzi della chiave. Gli spazi nel segreto vengono ignorati.