Codificador e decodificador Base62

Converta texto, bytes em hex ou arquivos em Base62 e vice-versa. A saída contém apenas dígitos e letras, por isso pode ser usada em URLs, nomes de arquivo e identificadores sem escape.

Funciona inteiramente no seu navegador. Nada é enviado.

Como usar

  1. Escolha Codificar para transformar texto em Base62, ou Decodificar para transformar Base62 de volta em texto.
  2. 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.
  3. Digite ou cole a entrada, ou abra um arquivo pequeno (até cerca de 20 KB).
  4. 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) e 0-9a-zA-Z. Algumas outras bibliotecas colocam as letras antes dos dígitos.
  • Zeros à esquerda. Algumas implementações mantêm um 0 para 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

Alfabeto0-9 A-Z a-z
Tamanho da saídaCerca de 134% (conversão de número grande)
PreenchimentoNenhum
PadrãoSem padrão formal
Diferencia maiúsculas e minúsculasSim

Exemplos

Entrada (UTF-8)Saída
Hello, World!1wJfrzvdbtXUOlUjUf
Base64.isNWxjrFq4r3rv
你好19PqtKE1t

Perguntas frequentes

O Base62 é seguro para URL?
Sim. Ele usa apenas A-Z, a-z e 0-9, que nunca precisam de escape em URLs. O Base64URL também é seguro para URL, mas inclui os caracteres - e _.
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.

Devo usar Base62 ou Base58?
O Base58 deixa de fora 0, O, I e l para que as pessoas não os confundam ao copiar à mão. O Base62 mantém todas as letras e dígitos e é um pouco mais curto. Escolha Base58 para strings que pessoas digitam e Base62 para strings que máquinas processam.