Codificatore e decodificatore Base32

Converti testo, byte esadecimali o file in Base32 e viceversa. Scegli l’alfabeto RFC 4648, Base32hex, Crockford o z-base-32, e controlla padding e maiuscole/minuscole.

Funziona interamente nel tuo browser. Non viene caricato nulla.

Come si usa

  1. Scegli Codifica per trasformare il testo in Base32, oppure Decodifica per riportare il Base32 in testo.
  2. Scegli la Variante. RFC 4648 è quella predefinita, usata dai segreti TOTP e dalla maggior parte delle librerie.
  3. Digita o incolla l’input, oppure apri un file. Il risultato si aggiorna mentre scrivi.
  4. 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 link otpauth://) 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

VarianteAlfabetoUso tipico
RFC 4648A-Z 2-7Segreti TOTP, uso generico
Base32hex0-9 A-VStesso ordinamento dei byte grezzi, DNSSEC NSEC3
Crockford0-9 A-Z senza I, L, O, UID leggibili, ULID
z-base-32minuscolo, permutatoChiavi 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

AlfabetoA-Z 2-7
Dimensione dell’output8 caratteri ogni 5 byte (160%)
Padding= fino a un multiplo di 8 caratteri
StandardRFC 4648, sezione 6
Distingue maiuscole/minuscoleNo

Esempi

Input (UTF-8)Output
Hello, World!JBSWY3DPFQQFO33SNRSCC===
Base64.isIJQXGZJWGQXGS4Y=
你好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.