Codificatore e decodificatore z-base-32

Converti testo, byte esadecimali o file in z-base-32 e viceversa. Il suo alfabeto in minuscolo esclude i caratteri che si confondono facilmente, e l’output non ha bisogno di padding.

Funziona interamente nel tuo browser. Non viene caricato nulla.

Come si usa

  1. Scegli Codifica per trasformare il testo in z-base-32, oppure Decodifica per riportare lo z-base-32 in testo.
  2. Lascia selezionata la variante z-base-32 e assicurati che il Padding sia disattivato, perché il formato non lo usa.
  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’è z-base-32?

z-base-32 è una codifica Base32 progettata da Zooko Wilcox-O'Hearn per essere più facile da leggere, scrivere e pronunciare. Il meccanismo è lo stesso del Base32 RFC 4648: ogni carattere trasporta 5 bit e 5 byte diventano 8 caratteri. A distinguerla è l’alfabeto:

ybndrfg8ejkmcpqxot1uwisza345h769

È interamente in minuscolo ed esclude 0, 2, l e v, che si confondono facilmente con o, z, 1 e u. Inoltre i caratteri sono riordinati, quindi l’output z-base-32 non somiglia affatto al Base32 standard degli stessi byte e non può essere letto da un decodificatore RFC 4648.

Non c’è padding: la lunghezza dei dati si ricava dalla lunghezza della stringa. La specifica può codificare anche sequenze di bit che non formano byte interi, se entrambe le parti concordano sulla lunghezza; questo strumento lavora sempre con byte interi.

Dove si usa z-base-32

  • OpenPGP Web Key Directory (WKD). Per pubblicare una chiave a un URL noto, la parte locale dell’indirizzo email viene convertita in minuscolo e sottoposta a hash con SHA-1, e l’hash di 20 byte viene codificato in z-base-32 come nome di file di 32 caratteri.
  • ZRTP. La stringa di autenticazione breve che due interlocutori leggono ad alta voce per scoprire un attacco man-in-the-middle può essere rappresentata in Base32 con l’alfabeto z-base-32 (RFC 6189).
  • Lightning Network. I software per nodi come lnd e Core Lightning restituiscono i messaggi firmati come stringhe z-base-32.

Per altri formati a misura d’uomo, confronta Crockford Base32, che mantiene le cifre in ordine e perdona gli errori di battitura, e Base58, più corto ma sensibile alle maiuscole.

Specifiche

Alfabetoybndrfg8ejkmcpqxot1uwisza345h769
Dimensione dell’output8 caratteri ogni 5 byte (160%)
PaddingNessuno
Standardz-base-32 (Zooko Wilcox-O'Hearn)
Distingue maiuscole/minuscoleNo

Esempi

Input (UTF-8)Output
Hello, World!jb1sa5dxfoofq551pt1nn
Base64.isejozg3jsgozg1ha
你好h164b3pfzw

Domande frequenti

z-base-32 è uguale a Base32?

No. Usa lo stesso raggruppamento a 5 bit del Base32 RFC 4648, ma un alfabeto diverso e riordinato, e niente padding. Una stringa z-base-32 va decodificata con un decodificatore z-base-32.

z-base-32 distingue tra maiuscole e minuscole?

L’alfabeto è in minuscolo e l’output è sempre in minuscolo. Questo decodificatore accetta anche input in maiuscolo e lo converte in minuscolo prima della decodifica.

Che cosa succede se la mia stringa termina con dei segni =?

z-base-32 non usa il padding, ma se una stringa termina con dei segni = il decodificatore si limita a ignorarli.

Come ottengo un hash WKD?
WKD richiede l’hash SHA-1 della parte locale dell’indirizzo convertita in minuscolo, che questo strumento non calcola. Calcola l’hash altrove, incollalo qui come input esadecimale e codificalo. GnuPG può anche stampare direttamente l’hash WKD con l’opzione --with-wkd-hash.