Codificador e Decodificador Base85

Base85 comprime quatro bytes em cinco caracteres ASCII — mais denso que a proporção de 3 para 4 do Base64 — usando um alfabeto de 85 caracteres em vez de 64. A variante Ascii85 da Adobe vem embutida em todos os arquivos PostScript e PDF; a nova variante Z85 (ZeroMQ) evita caracteres que quebram dentro de strings C e XML. Esta ferramenta codifica e decodifica ambas, com delimitadores opcionais.

Como converter Base85

  1. 1

    Escolha a variante

    Ascii85 para ativos PDF/PostScript; Z85 para código-fonte e protocolos de rede.

  2. 2

    Cole o texto ou faça upload de um arquivo

    A direção de codificação aceita bytes brutos; a direção de decodificação aceita uma string Base85.

  3. 3

    O codificador divide em blocos de 4 bytes

    Cada bloco de 4 bytes se torna uma string Base85 de 5 caracteres. O bloco final é preenchido e truncado.

  4. 4

    Copie o resultado

    Ascii85 opcionalmente envolto com delimitadores `<~` e `~>`; Z85 sem delimitadores.

Comparação de sobrecarga de tamanho

Codificação Caracteres por 4 bytes Sobrecarga em relação ao binário
Hex 8 +100%
Base64 5,33 (arredondado para 8 com preenchimento) +37%
Base85 5 +25%
Binário bruto 4 0

Assim, 1 MB de binário se torna 1,25 MB em Base85, 1,33 MB em Base64, 2 MB em hex.

Alfabetos Ascii85 vs Z85

Ascii85 (RFC 1924 / Adobe): caracteres ! a u (33-117 em ASCII), além de z como um atalho para 4 bytes zero. Usado em fluxos PostScript e PDF, envolto como <~...~>.

Z85 (ZeroMQ): um subconjunto que evita caracteres de citação e escapes:

0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#

Seguro para embutir em JSON, XML, strings C e código-fonte sem escapes.

Como a matemática funciona

Cada 4 bytes são lidos como um inteiro de 32 bits em big-endian N. Os 5 caracteres de saída são os dígitos de N na base 85, começando pelo mais significativo. 85^5 = 4 437 053 125, que é maior que 2^32, então 4 bytes sempre cabem em 5 caracteres.

Quando o Ascii85 importa

Abra qualquer PDF em um editor de texto e procure por ASCII85Decode — a Adobe o usa como um filtro para imagens e fontes embutidas que precisam sobreviver a um transporte de 7 bits (sistemas antigos de fax). O Z85 é amplamente utilizado em chaves de autenticação CURVE do ZeroMQ.

Casos especiais

  • Bloco de 4 bytes todos zero — O Ascii85 o codifica como o único caractere z em vez de !!!!!.
  • Bloco de 4 bytes todos espaços — Algumas variantes usam y para quatro espaços, outras não.
  • Último bloco parcial — Preenchido com bytes zero, e o número correspondente de caracteres de saída é truncado no final.

Perguntas frequentes

Saída menor, sim. Compatível universalmente, não. O Base85 contém caracteres como <, >, &, " (no Ascii85) que precisam de escape em XML, JSON e URLs. O Z85 evita isso, mas a maioria das ferramentas fala Base64 nativamente.

Ascii85 se você estiver trabalhando com arquivos PostScript ou PDF. Z85 para código-fonte, arquivos de configuração e protocolos de rede. A codificação IPv6 RFC 1924 é uma atribuição diferente dos mesmos 85 caracteres e raramente é usada na prática.

Não. Eles usam alfabetos diferentes. Decodificar Ascii85 com uma tabela Z85 produzirá lixo. Escolha um antes de codificar e mantenha-se nele.

Para Adobe Ascii85 em fluxos PDF ou PostScript, sim — eles marcam a região codificada. Para uso autônomo e toda a saída Z85, não são necessários delimitadores.

Ferramentas relacionadas