Como usar
- Escolha Codificar para transformar texto em Base62, ou Decodificar para transformar Base62 de volta em texto.
- Escolha a ordem do Alfabeto que corresponde ao seu sistema: 0-9 A-Z a-z (padrão) ou 0-9 a-z A-Z.
- Digite ou cole a entrada, ou abra um arquivo pequeno (até cerca de 20 KB).
- Copie o resultado ou baixe-o como arquivo.
O que é Base62?
O Base62 usa os dez dígitos, as 26 letras maiúsculas e as 26 letras minúsculas. É o maior alfabeto formado só por letras e dígitos, então o resultado não precisa de escape em URLs, nomes de arquivo, chaves de banco de dados ou identificadores no código. Cada caractere carrega cerca de 5,95 bits, o que faz a saída ter cerca de 1,34 vez o tamanho da entrada: quase tão compacta quanto o Base64, mas sem +, /, =, - ou _.
Como 62 não é uma potência de dois, esta ferramenta trata a entrada inteira como um único número grande e o converte para a base 62, assim como o Base58 e o Base36. Cada byte zero à esquerda é escrito como um 0 à esquerda, para que sobreviva à ida e volta. A entrada é limitada a cerca de 20 KB porque a aritmética fica lenta com dados grandes.
Não existe um padrão único de Base62
Ao contrário do Base64, o Base62 não tem RFC, e as implementações diferem de maneiras que tornam suas saídas incompatíveis:
- Ordem do alfabeto. Esta ferramenta oferece
0-9A-Za-z(o padrão) e0-9a-zA-Z. Algumas outras bibliotecas colocam as letras antes dos dígitos. - Zeros à esquerda. Algumas implementações mantêm um
0para cada byte zero à esquerda, como esta ferramenta, outras os descartam, e formatos de comprimento fixo preenchem o resultado até uma largura definida. - O que é codificado. Muitas funções Base62 codificam um número inteiro, como um ID de banco de dados, em vez de uma sequência de bytes. Outras dividem os dados em blocos de tamanho fixo.
Se uma string vinda de outro sistema for decodificada aqui como lixo, experimente a outra opção de alfabeto. Se ainda assim falhar, esse sistema provavelmente usa outro método.
Onde o Base62 é usado
Encurtadores de URL transformam um ID autoincremental em um código curto: sete caracteres Base62 cobrem mais de 3,5 trilhões de valores. IDs ordenáveis como o KSUID usam uma forma Base62 fixa de 27 caracteres, e muitos serviços usam Base62 em chaves de API e tokens, porque um clique duplo seleciona a string inteira e ela pode ser colada em qualquer lugar. Para converter um único número inteiro, use o conversor de bases numéricas ou algumas linhas de código:
// JavaScript: inteiro (BigInt) para 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'
Especificação
| Alfabeto | 0-9 A-Z a-z |
|---|---|
| Tamanho da saída | Cerca de 134% (conversão de número grande) |
| Preenchimento | Nenhum |
| Padrão | Sem padrão formal |
| Diferencia maiúsculas e minúsculas | Sim |
Exemplos
| Entrada (UTF-8) | Saída |
|---|---|
Hello, World! | 1wJfrzvdbtXUOlUjUf |
Base64.is | NWxjrFq4r3rv |
你好 | 19PqtKE1t |
Perguntas frequentes
O Base62 é seguro para URL?
Por que minha string Base62 é decodificada no texto errado?
As implementações de Base62 diferem na ordem do alfabeto e no método. Alterne entre os alfabetos 0-9A-Za-z e 0-9a-zA-Z. Se nenhum funcionar, a string provavelmente foi gerada a partir de um número inteiro ou com outro algoritmo.
O Base62 diferencia maiúsculas de minúsculas?
Sim. Letras maiúsculas e minúsculas representam valores diferentes, então uma string Base62 nunca deve ser convertida para maiúsculas ou minúsculas.