Codificador e decodificador Base32

Converta texto, bytes em hex ou arquivos para Base32 e vice-versa. Escolha o alfabeto da RFC 4648, Base32hex, Crockford ou z-base-32 e defina o preenchimento e o uso de maiúsculas ou minúsculas.

Funciona inteiramente no seu navegador. Nada é enviado.

Como usar

  1. Escolha Codificar para transformar texto em Base32 ou Decodificar para transformar Base32 de volta em texto.
  2. Escolha a Variante. RFC 4648 é a opção padrão e a usada pelos segredos TOTP e pela maioria das bibliotecas.
  3. Digite ou cole a entrada, ou abra um arquivo. O resultado é atualizado enquanto você digita.
  4. Copie o resultado ou baixe-o como arquivo.

O que é Base32?

O Base32 representa dados binários com 32 caracteres imprimíveis. Cada caractere carrega 5 bits, então cada 5 bytes de entrada viram 8 caracteres de saída. A saída fica cerca de 60% maior que a entrada, um acréscimo maior que o do Base64, mas o alfabeto evita letras minúsculas e símbolos fáceis de confundir.

O alfabeto padrão definido na RFC 4648 usa as letras A-Z e os dígitos 2-7. Os dígitos 0, 1, 8 e 9 ficam de fora para não serem confundidos com as letras O, I e B. Quando o comprimento da entrada não é múltiplo de 5 bytes, a saída é completada com = até um múltiplo de 8 caracteres.

Onde o Base32 é usado

  • Autenticação de dois fatores. Os segredos TOTP e HOTP dos aplicativos autenticadores (o valor secret= em um link otpauth://) são strings Base32.
  • Sistemas que não diferenciam maiúsculas de minúsculas. Como o alfabeto tem uma única caixa de letras, o Base32 passa intacto por sistemas de arquivos, rótulos DNS e endereços de e-mail que ignoram a diferença entre maiúsculas e minúsculas.
  • Códigos digitados por pessoas. Chaves de licença, endereços onion e identificadores curtos usam Base32 para serem mais fáceis de ditar e digitar.

Se o tamanho importar mais que a legibilidade, o Base64 é mais compacto. Se você precisa de identificadores curtos sem caracteres confusos, compare o Crockford Base32 e o Base58.

Variantes do Base32

VarianteAlfabetoUso típico
RFC 4648A-Z 2-7Segredos TOTP, uso geral
Base32hex0-9 A-VOrdenação igual à dos bytes brutos, DNSSEC NSEC3
Crockford0-9 A-Z sem I, L, O, UIDs legíveis, ULID
z-base-32minúsculas, em outra ordemChaves pensadas para pessoas, OpenPGP WKD, ZRTP

Base32 no código

# Python
import base64
base64.b32encode(b'hello')        # codificar
base64.b32decode('NBSWY3DP')      # decodificar

// O Node.js não tem Base32 nativo; use um pacote como "hi-base32"
// Go (import "encoding/base32")
base32.StdEncoding.EncodeToString(data)

Especificação

AlfabetoA-Z 2-7
Tamanho da saída8 caracteres a cada 5 bytes (160%)
PreenchimentoCom = até um múltiplo de 8 caracteres
PadrãoRFC 4648, seção 6
Diferencia maiúsculas e minúsculasNão

Exemplos

Entrada (UTF-8)Saída
Hello, World!JBSWY3DPFQQFO33SNRSCC===
Base64.isIJQXGZJWGQXGS4Y=
你好4S62BZNFXU======

Perguntas frequentes

O Base32 diferencia maiúsculas de minúsculas?

O alfabeto da RFC 4648 é definido em maiúsculas, mas este decodificador também aceita entrada em minúsculas. Use a opção Minúsculas se você precisar de saída em minúsculas.

Por que minha string Base32 termina com sinais =?

Os sinais de igual são o preenchimento, que completa o último bloco até 8 caracteres. Muitos sistemas, incluindo a maioria dos aplicativos TOTP, aceitam Base32 sem preenchimento. Desative o Preenchimento para removê-lo.

Quanto o Base32 é maior que os dados originais?

Cada 5 bytes viram 8 caracteres, então a saída em Base32 tem cerca de 1,6 vez o tamanho da entrada. No Base64, a proporção é de cerca de 1,33 vez.

Posso decodificar um segredo TOTP com esta ferramenta?

Sim. Cole o segredo na aba Decodificar e escolha a saída Hex para ver os bytes brutos da chave. Os espaços no segredo são ignorados.