O elemento chave aqui é que este é um arquivo codificado ASCII.
Assim, cada caractere é codificado usando 8 bits. 177 × 8 = 1416 bits de cada linha. No entanto, 177 caracteres não contam terminações de linha, em janelas, uma linha final é codificada como "\ r \ n" (retorno de carro, alimentação de linha), então usará 179 caracteres por linha, emprestando 1432 bits por linha.
Seus SHA256s são 64 dígitos hexadecimais cada. Um dígito hexadecimal pode ser compactado para usar apenas 4 bits (2 ^ 4 = 16) que é metade do tamanho.
Vamos dividi-lo:
- (27 + 2) / 179 = 16,2% de texto fixo (supondo-se infinitamente comutável)
- 22/179 = 12,3% mudando o texto
- 128/179 = 71,5% do texto que pode ser codificado usando o tamanho% 50.
Usando apenas esse mapeamento, recebo 128/2 + 22 = 86 bytes ou 688 bits.
- 688/1432 = 48% do tamanho original.
Isso não leva em consideração qualquer compactação adicional que possa ser realizada na troca de texto, parece que eles geralmente são números ascii, que sofrem as mesmas perdas de embalagem que os dígitos hexadecimais ascii.
Para ser 100% honesto, estou surpreso que o zip do Windows não faz um trabalho melhor.