Como usar
- Escolha Codificar para transformar texto em Base32 ou Decodificar para transformar Base32 de volta em texto.
- Escolha a Variante. RFC 4648 é a opção padrão e a usada pelos segredos TOTP e pela maioria das bibliotecas.
- Digite ou cole a entrada, ou abra um arquivo. O resultado é atualizado enquanto você digita.
- 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 linkotpauth://) 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
| Variante | Alfabeto | Uso típico |
|---|---|---|
| RFC 4648 | A-Z 2-7 | Segredos TOTP, uso geral |
| Base32hex | 0-9 A-V | Ordenação igual à dos bytes brutos, DNSSEC NSEC3 |
| Crockford | 0-9 A-Z sem I, L, O, U | IDs legíveis, ULID |
| z-base-32 | minúsculas, em outra ordem | Chaves 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
| Alfabeto | A-Z 2-7 |
|---|---|
| Tamanho da saída | 8 caracteres a cada 5 bytes (160%) |
| Preenchimento | Com = até um múltiplo de 8 caracteres |
| Padrão | RFC 4648, seção 6 |
| Diferencia maiúsculas e minúsculas | Não |
Exemplos
| Entrada (UTF-8) | Saída |
|---|---|
Hello, World! | JBSWY3DPFQQFO33SNRSCC=== |
Base64.is | IJQXGZJWGQXGS4Y= |
你好 | 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.