Codificador e decodificador z-base-32

Converta texto, bytes em hex ou arquivos para z-base-32 e vice-versa. O alfabeto em minúsculas deixa de fora caracteres fáceis de confundir, e a saída dispensa preenchimento.

Funciona inteiramente no seu navegador. Nada é enviado.

Como usar

  1. Escolha Codificar para transformar texto em z-base-32 ou Decodificar para transformar z-base-32 de volta em texto.
  2. Mantenha a Variante z-base-32 selecionada e confira se o Preenchimento está desativado, já que o formato não o utiliza.
  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 é z-base-32?

O z-base-32 é uma codificação Base32 criada por Zooko Wilcox-O'Hearn para ser mais fácil de ler, escrever e falar. O mecanismo é o mesmo do Base32 da RFC 4648: cada caractere carrega 5 bits e 5 bytes viram 8 caracteres. O que o diferencia é o alfabeto:

ybndrfg8ejkmcpqxot1uwisza345h769

Ele é todo em minúsculas e deixa de fora 0, 2, l e v, que são fáceis de confundir com o, z, 1 e u. Os caracteres também foram reordenados, então a saída z-base-32 não se parece em nada com o Base32 padrão dos mesmos bytes e não pode ser lida por um decodificador RFC 4648.

Não há preenchimento: o comprimento dos dados decorre do comprimento da string. A especificação também permite codificar sequências de bits que não formam bytes inteiros, quando os dois lados combinam o comprimento; esta ferramenta sempre trabalha com bytes inteiros.

Onde o z-base-32 é usado

  • OpenPGP Web Key Directory (WKD). Para publicar uma chave em uma URL conhecida (well-known), a parte local do endereço de e-mail é convertida para minúsculas e passa por um hash SHA-1, e o hash de 20 bytes é codificado em z-base-32 como um nome de arquivo de 32 caracteres.
  • ZRTP. A string curta de autenticação que dois interlocutores leem em voz alta para detectar um ataque man-in-the-middle pode ser exibida como Base32 com o alfabeto z-base-32 (RFC 6189).
  • Lightning Network. Softwares de nó como o lnd e o Core Lightning retornam mensagens assinadas como strings z-base-32.

Para outros formatos amigáveis para pessoas, compare o Crockford Base32, que mantém os dígitos em ordem e perdoa erros de digitação, e o Base58, que é mais curto, mas diferencia maiúsculas de minúsculas.

Especificação

Alfabetoybndrfg8ejkmcpqxot1uwisza345h769
Tamanho da saída8 caracteres a cada 5 bytes (160%)
PreenchimentoNenhum
Padrãoz-base-32 (Zooko Wilcox-O'Hearn)
Diferencia maiúsculas e minúsculasNão

Exemplos

Entrada (UTF-8)Saída
Hello, World!jb1sa5dxfoofq551pt1nn
Base64.isejozg3jsgozg1ha
你好h164b3pfzw

Perguntas frequentes

O z-base-32 é o mesmo que Base32?

Não. Ele usa o mesmo agrupamento de 5 bits do Base32 da RFC 4648, mas um alfabeto diferente e reordenado, e não tem preenchimento. Uma string z-base-32 precisa ser decodificada com um decodificador z-base-32.

O z-base-32 diferencia maiúsculas de minúsculas?

O alfabeto é em minúsculas e a saída é sempre em minúsculas. Este decodificador também aceita entrada em maiúsculas e a converte para minúsculas antes de decodificar.

E se a minha string terminar com sinais =?

O z-base-32 não usa preenchimento, mas, se uma string terminar com sinais =, o decodificador simplesmente os ignora.

Como obter um hash WKD?
O WKD precisa do hash SHA-1 da parte local do endereço em minúsculas, e esta ferramenta não calcula esse hash. Calcule-o em outro lugar, cole-o aqui como entrada hex e codifique-o. O GnuPG também pode exibir o hash WKD diretamente com a opção --with-wkd-hash.