Pular para o conteúdo
Todos os conceitos

Base85

Uma codificação que usa 85 caracteres imprimíveis e guarda 4 bytes em 5 caracteres.

O Base85 faz o mesmo trabalho do Base64, escrever qualquer sequência de bytes como texto, mas com um alfabeto maior: 85 símbolos. Por isso cabe mais informação em cada caractere: 4 bytes viram 5 caracteres (no Base64, 3 bytes viram 4).

A variante mais comum é o Ascii85, usada dentro de arquivos PDF e PostScript. O alfabeto dela é um trecho contínuo da tabela ASCII, do ! (código 33) ao u (código 117), então o texto mistura letras, algarismos e símbolos como <, (, &, $ e @. Um grupo de quatro bytes zero vira só z, e às vezes o texto vem entre <~ e ~>.

Ola!  →  :MaG_          (Base64: T2xhIQ==)
Base85 :58 M77 a97 G71 _95 5 caracteres O4F l6C a61 !21 4 bytes Base64 T 2 x h I Q = = 8 caracteres 3 bytes viram 4 tabela ASCII 85 símbolos ! 33 u 117 acima do u: fora z sozinho = 4 bytes zero
Os 4 bytes de "Ola!" viram 5 caracteres em Base85 e 8 em Base64; o alfabeto do Base85 é o trecho da tabela ASCII que vai do ! (33) ao u (117).

Como reconhecer: muitos símbolos de pontuação que o Base64 não usa, nenhum caractere acima de u (nada de v a z minúsculos, fora o z sozinho) e comprimento perto de um múltiplo de 5. Existem outras variantes com alfabetos diferentes, como a do ZeroMQ (Z85) e a dos patches binários do Git.

Para decodificar, use From Base85 no CyberChef (abre em nova aba), com o alfabeto padrão !-u, ou em Python base64.a85decode(texto) (para a variante do Git, base64.b85decode).

Aparece nestes desafios