Codificatore e Decodificatore Base32

Base32 rappresenta dati binari utilizzando 32 caratteri, le dieci cifre da 2 a 7 e le 26 lettere maiuscole, senza 0/O o 1/I per evitare errori di lettura. Questo lo rende ideale per qualsiasi cosa che un umano debba digitare o leggere ad alta voce: segreti TOTP a due fattori, codici voucher, identificatori non sensibili al maiuscolo. Questo strumento codifica il testo in Base32 e lo decodifica, seguendo la RFC 4648 con padding = standard.

Come codificare o decodificare Base32

  1. 1

    Incolla il testo da convertire

    L'input è trattato come byte. UTF-8 è l'interpretazione predefinita per l'input di testo.

  2. 2

    Scegli la direzione

    Codifica per trasformare byte grezzi in una stringa Base32; decodifica per recuperare i byte.

  3. 3

    Osserva il comportamento del padding

    La RFC 4648 riempie l'output codificato con `=` fino a un multiplo di 8 caratteri. Il decodificatore accetta sia input con padding che senza.

  4. 4

    Copia il risultato

    L'output codificato è in maiuscolo, con padding `=` fino a un multiplo di 8 caratteri.

L’alfabeto RFC 4648

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 2 3 4 5 6 7

Nessun 0, nessun 1, nessun 8, nessun 9. Ogni carattere codifica 5 bit (2^5 = 32), quindi 5 byte di input diventano 8 caratteri di output.

Esempio pratico

Codificando la stringa ASCII foo (byte 0x66 0x6F 0x6F = 01100110 01101111 01101111):

  1. Suddividi in gruppi di 5 bit: 01100 11001 10111 10110 1111 (ultimo gruppo con padding)
  2. Mappa all’alfabeto: M Z X W 6
  3. Aggiungi padding === per raggiungere 8 caratteri: MZXW6===

Regole di padding e lunghezza

Byte di input Lunghezza output Padding
1 8 ======
2 8 ====
3 8 ===
4 8 =
5 8 (nessuno)

Varianti oltre la RFC 4648

  • Base32 Hex, Alfabeti 0-9A-V, utilizzato da NSEC3 in DNSSEC.
  • Base32 di Crockford, Alfabeti ottimizzati per la digitazione umana; sostituisce O0, I/L1 in decodifica. Utilizzato da ULID e alcune chiavi di licenza.

Questo strumento implementa solo la RFC 4648 standard; usa un convertitore dedicato per le varianti sopra indicate.

Segreti TOTP

Il formato URI otpauth:// utilizzato da Google Authenticator e da ogni moderna app 2FA codifica il segreto condiviso in Base32 senza padding. Quando scansionate un QR per “Il mio servizio”, il parametro secret= è una stringa Base32. Decodificatelo con questo strumento per ispezionare i byte grezzi utilizzati dall’HMAC.

Domande frequenti

Base32 è non sensibile al maiuscolo e evita caratteri simili, il che è importante per qualsiasi cosa che un umano legga o digiti. Base64 è più denso (meno caratteri per gli stessi byte) ma richiede di distinguere I da l e 0 da O, il che fallisce nella scrittura a mano e nella stampa in piccolo.

La RFC 4648 specifica il padding per la codifica. Questo strumento riempie sempre l’output codificato con = fino a un multiplo di 8 caratteri. La maggior parte dei consumatori reali (app TOTP, librerie ULID, risolutori DNSSEC) accetta input senza padding, e il decodificatore accetta qui entrambe le forme, con e senza padding.

La Base32 standard non ha 0, 1, 8 o 9 ed è sempre in maiuscolo. Il decodificatore ignora silenziosamente qualsiasi carattere fuori dall’alfabeto RFC 4648, quindi un input in minuscolo o con caratteri insoliti viene decodificato in byte errati. Normalizza l’input in lettere maiuscole A-Z e cifre 2-7 prima di decodificare.

Sì, il testo viaggia fino al server della pagina per calcolare il risultato e, nella vista a più passaggi, lo stesso testo è portato anche nel link del passaggio. Non viene né salvato né registrato.

Strumenti correlati

Strumento disponibile in altre lingue