Codificatore e decodificatore Base62

Converti testo, byte esadecimali o file in Base62 e viceversa. L’output contiene solo cifre e lettere, quindi puoi usarlo in URL, nomi di file e identificatori senza alcun escape.

Funziona interamente nel tuo browser. Non viene caricato nulla.

Come si usa

  1. Scegli Codifica per trasformare il testo in Base62, oppure Decodifica per riportare Base62 in testo.
  2. Seleziona l’ordine dell’Alfabeto usato dal tuo sistema: 0-9 A-Z a-z (predefinito) oppure 0-9 a-z A-Z.
  3. Digita o incolla l’input, oppure apri un piccolo file (fino a circa 20 KB).
  4. Copia il risultato o scaricalo come file.

Che cos’è Base62?

Base62 usa le dieci cifre, le 26 lettere maiuscole e le 26 lettere minuscole. È l’alfabeto più ampio composto solo da lettere e cifre, quindi il risultato non richiede escape in URL, nomi di file, chiavi di database o identificatori nel codice. Ogni carattere trasporta circa 5,95 bit, per cui l’output è circa 1,34 volte più grande dell’input: compatto quasi quanto Base64, ma senza +, /, =, - o _.

Poiché 62 non è una potenza di due, questo strumento tratta l’intero input come un unico numero grande e lo converte in base 62, come fanno Base58 e Base36. Ogni byte zero iniziale viene scritto come uno 0 iniziale, così si conserva nel passaggio di andata e ritorno. L’input è limitato a circa 20 KB perché i calcoli rallentano con dati di grandi dimensioni.

Non esiste un unico standard Base62

A differenza di Base64, Base62 non ha una RFC, e le implementazioni differiscono in modi che rendono incompatibili i loro output:

  • Ordine dell’alfabeto. Questo strumento offre 0-9A-Za-z (predefinito) e 0-9a-zA-Z. Alcune altre librerie mettono le lettere prima delle cifre.
  • Zeri iniziali. Alcune implementazioni mantengono uno 0 per ogni byte zero iniziale, come questo strumento, altre li eliminano, e i formati a lunghezza fissa riempiono il risultato fino a una larghezza prestabilita.
  • Che cosa viene codificato. Molte funzioni Base62 codificano un numero intero, come l’ID di un database, anziché una sequenza di byte. Altre suddividono i dati in blocchi di dimensione fissa.

Se una stringa proveniente da un altro sistema qui si decodifica in caratteri senza senso, prova l’altro alfabeto. Se continua a non funzionare, probabilmente quel sistema usa un metodo diverso.

Dove si usa Base62

Gli accorciatori di URL trasformano un ID auto-incrementale in un codice breve: sette caratteri Base62 coprono più di 3.500 miliardi di valori. Gli ID ordinabili come KSUID usano una forma Base62 fissa di 27 caratteri, e molti servizi usano Base62 per chiavi API e token, perché un doppio clic seleziona l’intera stringa e la si può incollare ovunque. Per convertire un singolo numero intero usa il convertitore di basi numeriche, oppure poche righe di codice:

// JavaScript: da intero (BigInt) a Base62
const A = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
function toBase62(n) {
  let s = '';
  do { s = A[Number(n % 62n)] + s; n /= 62n; } while (n > 0n);
  return s;
}
toBase62(123456789n);   // '8M0kX'

Specifiche

Alfabeto0-9 A-Z a-z
Dimensione dell’outputCirca 134% (conversione come intero grande)
PaddingNessuno
StandardNessuno standard formale
Distingue maiuscole/minuscoleSì

Esempi

Input (UTF-8)Output
Hello, World!1wJfrzvdbtXUOlUjUf
Base64.isNWxjrFq4r3rv
你好19PqtKE1t

Domande frequenti

Base62 è sicuro per gli URL?
Sì. Usa solo A-Z, a-z e 0-9, che negli URL non richiedono mai escape. Anche Base64URL è sicuro per gli URL, ma include i caratteri - e _.
Perché la mia stringa Base62 si decodifica nel testo sbagliato?

Le implementazioni di Base62 differiscono per ordine dell’alfabeto e metodo. Passa dall’alfabeto 0-9A-Za-z a 0-9a-zA-Z e viceversa. Se nessuno dei due funziona, probabilmente la stringa è stata generata da un numero intero o con un altro algoritmo.

Base62 distingue tra maiuscole e minuscole?

Sì. Le lettere maiuscole e minuscole rappresentano valori diversi, quindi una stringa Base62 non va mai convertita tutta in maiuscolo o in minuscolo.

Meglio Base62 o Base58?
Base58 esclude 0, O, I e l, così le persone non li confondono quando copiano a mano. Base62 mantiene tutte le lettere e le cifre ed è leggermente più corto. Scegli Base58 per le stringhe che le persone digitano e Base62 per quelle gestite dalle macchine.