UTILS.
100% nel browser
🔢

Codifica e decodifica Base62

Converti interi o stringhe di byte da e verso Base62 compatto e URL-safe (0-9A-Za-z), con supporto BigInt e una variante alfabeto GMP, tutto nel browser.

— l'output appare qui —

Informazioni su questo strumento

Lo strumento Base62 codifica numeri e stringhe di byte nell'alfabeto compatto di 62 simboli 0-9A-Za-z e li decodifica. Base62 è popolare per ID brevi, slug URL e link accorciati perché rimane URL-safe senza i caratteri +, / o = che usa Base64. Tutta la conversione viene eseguita localmente nel tuo browser con JavaScript BigInt, quindi valori arbitrariamente grandi sono esatti e nulla viene caricato.

La modalità intero tratta l'input come un intero a precisione arbitraria (decimale, o esadecimale con prefisso 0x): la codifica divide ripetutamente per 62 e antepone alphabet[remainder], e la decodifica calcola Σ alphabet.indexOf(ch)·62^position. La modalità byte tratta i byte di input (testo UTF-8 o esadecimale) come un unico bignum big-endian e applica la stessa conversione in base 62, ma preserva anche i byte zero iniziali in stile Bitcoin-Base58: ogni byte 0x00 iniziale diventa un carattere '0' iniziale, così i round-trip sono senza perdita.

L'alfabeto standard ordina cifre, poi maiuscole, poi minuscole (0-9A-Za-z). Alcune librerie — in particolare quelle basate su GMP — ordinano cifre, minuscole, poi maiuscole (0-9a-zA-Z), il che produce output diverso per lo stesso valore; l'interruttore dell'alfabeto ti permette di adattarti a quello usato dal tuo sistema. Scegli la direzione, la modalità intero o byte, il formato di input per i byte e la variante dell'alfabeto.

Domande frequenti

Qual è la differenza tra modalità intero e byte?
La modalità intero converte un singolo numero a precisione arbitraria (decimale o esadecimale 0x) in una stringa Base62 e viceversa in un intero decimale. La modalità byte converte una sequenza di byte (da testo UTF-8 o esadecimale) come bignum big-endian, e preserva i byte zero iniziali come caratteri alfabeto-zero iniziali, così i dati binari fanno round-trip esattamente.
Perché ci sono due alfabeti?
L'alfabeto standard è 0-9A-Za-z (maiuscole prima delle minuscole). Le librerie basate su GMP usano 0-9a-zA-Z (minuscole prima delle maiuscole). Lo stesso valore si codifica in modo diverso con ciascuno, quindi l'interruttore ti permette di interoperare con l'ordinamento che gli altri tuoi strumenti si aspettano.
Quanto grande può essere un numero gestibile?
Qualsiasi dimensione. Lo strumento usa JavaScript BigInt, quindi non c'è il limite di precisione di 2^53 — puoi codificare e decodificare esattamente interi e stringhe di byte di lunghezza arbitraria, il che è essenziale per hash, UUID e identificatori lunghi.
Come vengono gestiti gli zeri iniziali in modalità byte?
Ogni byte 0x00 iniziale viene codificato come un carattere alfabeto-zero iniziale (come l'1 iniziale di Base58). In decodifica, ogni carattere alfabeto-zero iniziale ripristina un byte 0x00, così codificare e poi decodificare restituisce l'esatta sequenza di byte originale.

Altri strumenti