Codificador e Decodificador Base32

Base32 representa dados binários usando 32 caracteres, os dez dígitos de 2 a 7 e as 26 letras maiúsculas, sem 0/O ou 1/I para evitar erros de leitura. Isso o torna ideal para qualquer coisa que um humano tenha que digitar ou ler em voz alta: segredos TOTP de dois fatores, códigos de voucher, identificadores sem distinção de maiúsculas. Esta ferramenta codifica texto para Base32 e decodifica de volta, seguindo a RFC 4648 com preenchimento = padrão.

Como codificar ou decodificar Base32

  1. 1

    Cole o texto a ser convertido

    A entrada é tratada como bytes. UTF-8 é a interpretação padrão para entrada de texto.

  2. 2

    Escolha a direção

    Codifique para transformar bytes brutos em uma string Base32; decodifique para recuperar os bytes.

  3. 3

    Observe o comportamento do preenchimento

    A RFC 4648 preenche a saída codificada com `=` até um múltiplo de 8 caracteres. O decodificador aceita entradas com e sem preenchimento.

  4. 4

    Copie o resultado

    A saída codificada é em maiúsculas, preenchida com `=` até um múltiplo de 8 caracteres.

O alfabeto RFC 4648

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 2 3 4 5 6 7

Sem 0, sem 1, sem 8, sem 9. Cada caractere codifica 5 bits (2^5 = 32), então 5 bytes de entrada se tornam 8 caracteres de saída.

Exemplo prático

Codificando a string ASCII foo (bytes 0x66 0x6F 0x6F = 01100110 01101111 01101111):

  1. Divida em grupos de 5 bits: 01100 11001 10111 10110 1111 (último grupo preenchido)
  2. Mapeie para o alfabeto: M Z X W 6
  3. Adicione preenchimento === para alcançar 8 caracteres: MZXW6===

Regras de preenchimento e comprimento

Bytes de entrada Comprimento de saída Preenchimento
1 8 ======
2 8 ====
3 8 ===
4 8 =
5 8 (nenhum)

Variações além da RFC 4648

  • Base32 Hex, Alfabeto 0-9A-V, usado por NSEC3 no DNSSEC.
  • Base32 de Crockford, Alfabeto otimizado para digitação humana; substitui O0, I/L1 na decodificação. Usado por ULIDs e algumas chaves de licença.

Esta ferramenta implementa apenas a RFC 4648 padrão; use um conversor dedicado para as variações acima.

Segredos TOTP

O formato de URI otpauth:// usado pelo Google Authenticator e por todos os aplicativos modernos de 2FA codifica o segredo compartilhado em Base32 sem preenchimento. Quando você escaneia um QR para “Meu Serviço”, o parâmetro secret= é uma string Base32. Decodifique-a com esta ferramenta para inspecionar os bytes brutos que o HMAC usa.

Perguntas frequentes

Base32 é sem distinção de maiúsculas e evita caracteres semelhantes, o que é importante para qualquer coisa que um humano leia ou digite. Base64 é mais denso (menos caracteres para os mesmos bytes), mas exige que você diferencie I de l e 0 de O, o que falha na escrita manual e em impressão pequena.

A RFC 4648 especifica o preenchimento para a codificação. Esta ferramenta sempre preenche sua saída codificada com = até um múltiplo de 8 caracteres. A maioria dos consumidores do mundo real (aplicativos TOTP, bibliotecas ULID, resolvers DNSSEC) aceita entrada sem preenchimento, e o decodificador aqui aceita ambas as formas, com e sem preenchimento.

A Base32 padrão não tem 0, 1, 8 ou 9 e é sempre em maiúsculas. O decodificador ignora silenciosamente qualquer caractere fora do alfabeto RFC 4648, então uma entrada em minúsculas ou com caracteres incomuns é decodificada em bytes errados. Normalize a entrada para letras maiúsculas A-Z e dígitos 2-7 antes de decodificar.

Sim, o texto vai até o servidor da página para que o resultado seja calculado, e na visão de várias etapas o mesmo texto também é levado no link da etapa. Ele não é armazenado nem registrado.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas