1001Ferramentas
🔤 Utilitários

Base32 Encode/Decode

Converta texto entre Base32 (RFC 4648) e UTF-8 nos dois sentidos. Útil para tokens de autenticação TOTP, chaves e dados compatíveis com sistemas que usam Base32.

Base32: quando 32 caracteres valem mais que 64

Base32 usa só letras maiúsculas de A a Z e os dígitos de 2 a 7. Isso o torna mais longo que base64 — cerca de 60% de crescimento contra 33% — mas resolve problemas que base64 não resolve: o resultado sobrevive a sistemas que não diferenciam maiúscula de minúscula, cabe em rótulos de DNS, pode ser ditado por telefone e não usa nenhum caractere que precise de escape em URL.

Digite o texto e a página devolve a codificação padrão da RFC 4648, com o preenchimento em "=" no fim. O processo agrupa os bits da entrada de cinco em cinco, já que 32 é dois elevado a cinco, e cada grupo vira uma letra. Como oito bits não dividem cinco de forma exata, sobram bits no fim, completados com zeros — e é daí que vem o padding, que mantém o bloco final com múltiplo de oito caracteres.

O uso mais comum hoje é a chave secreta do autenticador de dois fatores: o segredo TOTP é distribuído em base32 justamente para caber num QR Code e poder ser digitado à mão quando a câmera falha. Também aparece em endereços .onion do Tor, em nomes de arquivo que precisam ser case-insensitive e em identificadores dentro de zonas DNS.

Perguntas frequentes

Por que o alfabeto começa em 2 e não em 0?
Pelo mesmo motivo do base58: 0 e O se confundem, assim como 1, I e l. Deixando de fora 0, 1, 8 e 9, sobram 26 letras mais seis dígitos, exatamente 32 símbolos sem par ambíguo.
Os sinais de igual no fim são obrigatórios?
Na RFC 4648 padrão, sim, e é o que sai aqui. Vários usos práticos removem o padding — a chave TOTP costuma ser distribuída sem ele, e a maioria dos aplicativos aceita das duas formas. Se o destino reclamar, apague os "=" do fim; nenhum bit de informação se perde.
É a mesma coisa que base32hex?
Não. Existe uma variante com alfabeto 0-9 seguido de A-V, chamada base32hex, usada em DNSSEC (NSEC3) porque preserva a ordem de classificação dos dados originais. Ela codifica os mesmos bits com símbolos diferentes, então os resultados não são intercambiáveis.

Ferramentas Relacionadas