Codificador e Decodificador Base85 | Ascii85 e Z85 em uma ferramenta
Base85 compacta quatro bytes em cinco caracteres imprimíveis, com uma sobrecarga de cerca de 25% em vez dos 33% do Base64. Esta ferramenta alterna entre o Ascii85 da Adobe e o Z85 do ZeroMQ em uma única tela, transformando sua entrada em saída codificada ou decodificada e apontando qualquer caractere que não pertença.
💡 Sobre esta ferramenta
Se você já abriu um arquivo PDF ou PostScript, provavelmente viu imagens e fontes armazenadas como longas strings cercadas por <~ ... ~>. Isso é o Ascii85 da Adobe. Ao trabalhar com ZeroMQ, surge o Z85, outra variante de Base85 usada para chaves CURVE e certificados. A clássica dor de cabeça do "diz base85 mas a saída não bate" quase sempre vem da confusão entre essas duas variantes.
Esta ferramenta mantém a direção (codificar/decodificar) e a variante (Ascii85/Z85) em botões separados, de modo que analisar um bloco extraído de um PDF e processar uma chave do ZeroMQ ficam no mesmo lugar. A entrada é convertida em bytes UTF-8 no seu navegador antes do processamento, e o decodificador Ascii85 expande o atalho z que representa quatro bytes zero. Quando um caractere errado entra por um copiar e colar ruim, a ferramenta o nomeia em vez de produzir lixo silenciosamente.
🧐 Perguntas frequentes
Qual é a diferença entre Base85, Ascii85 e Z85?
Base85 é o termo geral para "representar dados com 85 caracteres". Ascii85 é a implementação concreta da Adobe para PostScript e PDF; usa os delimitadores <~...~> e reduz quatro bytes zero a um único z. Z85 é a implementação do ZeroMQ, que escolhe um conjunto de caracteres sem aspas nem barras invertidas para se encaixar de forma limpa no código-fonte.
Quanto Base85 é mais compacto que Base64? Base85 converte 4 bytes em 5 caracteres, um aumento de cerca de 25%. Base64 converte 3 bytes em 4 caracteres, cerca de 33%. Para os mesmos dados binários, Base85 produz menos caracteres.
Por que o Z85 rejeita uma entrada que não é múltiplo de cinco caracteres? A decodificação Z85 mapeia cada cinco caracteres de volta para quatro bytes, então um comprimento que não seja múltiplo de cinco não pode ser reconstruído. Na codificação, os dados precisam ser completados até um múltiplo de quatro bytes; esta ferramenta preenche o restante automaticamente antes de gerar o Z85.
Preciso dos marcadores <~ ~> ou do z para decodificar Ascii85?
Os delimitadores <~ e ~> são opcionais para decodificar aqui. O z é um atalho para quatro bytes zero, então você pode colá-lo como está e ele será expandido corretamente.
📚 Curiosidades: Base85 e patches binários
Além de embutir imagens e fontes em PDFs e arquivos PostScript, o Ascii85 da Adobe também é como o Git armazena patches binários: o comando git diff --binary produz um bloco em Ascii85. É uma forma deliberadamente discreta, com décadas de existência, de transportar dados binários por um canal que só aceita texto. Assim, da próxima vez que uma revisão de código mostrar uma parede de caracteres começando com <~, você saberá que não é corrupção, e sim um arquivo binário renderizado como texto.