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. Esta ferramenta implementa a variante Ascii85 da Adobe, a que existe em arquivos PostScript e PDF. O codificador sempre envolve a saída com os delimitadores <~ e ~>; o decodificador aceita entradas com ou sem eles.

Como converter Base85 (Ascii85)

  1. 1

    Escolha codificar ou decodificar

    Codificar transforma bytes brutos em Ascii85; decodificar transforma uma string Ascii85 de volta em bytes.

  2. 2

    Cole o seu texto

    Cole no campo os bytes a codificar ou a string Ascii85 a decodificar.

  3. 3

    O codificador divide em blocos de 4 bytes

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

  4. 4

    Copie o resultado

    A saída Ascii85 vem envolta nos delimitadores `<~` e `~>`. Cole-a de novo para decodificá-la; os delimitadores são removidos automaticamente.

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 vira 1,25 MB em Base85, 1,33 MB em Base64 e 2 MB em hex.

O alfabeto Ascii85

Ascii85 (Adobe): caracteres de ! a u (33-117 em ASCII), mais z como atalho para 4 bytes zero. É a codificação padrão dos fluxos PostScript e PDF, envolta como <~...~>.

Z85 (ZeroMQ) e o alfabeto RFC 1924 para IPv6 são atribuições diferentes da mesma ideia de 85 caracteres. Esta ferramenta não os implementa; uma string codificada com essas variantes seria decodificada incorretamente aqui.

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, do mais significativo ao menos. 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 usa isso como filtro para imagens e fontes incorporadas que precisam sobreviver a um transporte de 7 bits (sistemas antigos de fax). A mesma codificação aparece em muitos arquivos PostScript e em transportes binários seguros para e-mail.

Casos especiais

  • Bloco de 4 bytes todos zero: o Ascii85 codifica como o único caractere z em vez de !!!!!.
  • Ú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. Compatibilidade universal, não. O Ascii85 contém caracteres como <, >, &, " que precisam de escape em XML, JSON e URLs. A maioria das ferramentas fala Base64 nativamente.

Nos fluxos PostScript e PDF, onde a região codificada é marcada com <~ e ~>. Os leitores e editores de PDF lidam com essa codificação automaticamente.

Não. Ela implementa apenas o Adobe Ascii85. Z85 (ZeroMQ) e o alfabeto RFC 1924 para IPv6 atribuem os 85 caracteres de forma diferente; uma string codificada com essas variantes seria decodificada incorretamente aqui.

Eles marcam a região codificada conforme a convenção Ascii85. O codificador sempre os adiciona e o decodificador os remove automaticamente quando presentes. Você também pode colar uma string sem eles.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas