3

У меня есть текстовый файл в кодировке ASCII, где каждая строка имеет следующую структуру:

XYplorer nn.nn.nnnn [yyyy-mm-dd hh.mm.ss] [S256 S256].zip
         ↑↑ ↑↑ ↑↑↑↑  ↑↑↑↑ ↑↑ ↑↑ ↑↑ ↑↑ ↑↑   ↑64× ↑64×

поэтому длина строки составляет 177 символов, 27 символов не меняются, а остальные 150 изменяются, и эти два хэша составляют 128 таких символов. Я также предполагаю, что хеши в основном случайный текст, поэтому его трудно сжать, поэтому

27/177 = 15.3% фиксированный текст

22/177 = 12.4% изменение текста

128/177 = 72.3% случайного текста

Тем не менее, архивируя такой файл (1854 строки) стандартным способом (правой кнопкой мыши) в Windows, я достигаю степени сжатия 49%, что сбивает меня с толку, потому что она кажется слишком высокой / эффективной.

Можете ли вы объяснить мне, как случайная часть может быть сжата так сильно?

1 ответ1

4

Ключевым элементом здесь является то, что это файл в кодировке ASCII.

Таким образом, каждый символ кодируется с использованием 8 бит. 177 × 8 = 1416 бит в каждой строке. Однако 177 символов не учитывают окончания строки, в окнах конец строки кодируется как "\r\n" (возврат каретки, перевод строки), поэтому будет использовать 179 символов на строку, что дает 1432 бита на строку.

Ваши SHA256 имеют 64 шестнадцатеричных числа каждый. Шестнадцатеричная цифра может быть просто упакована, чтобы использовать только 4 бита (2 ^ 4 = 16), что в два раза меньше.

Давайте разберемся с этим:

  • (27+2)/179 = 16,2% фиксированного текста (при условии бесконечно сжимаемого)
  • 22/179 = 12,3% изменение текста
  • 128/179 = 71,5% текста, который можно закодировать с использованием размера% 50.

Используя только это отображение, я получаю 128/2 + 22 = 86 байт или 688 бит.

  • 688/1432 = 48% от исходного размера.

При этом не учитывается какое-либо дополнительное сжатие, которое может быть выполнено для изменяющегося текста, похоже, что они обычно являются числами ascii, которые несут те же потери при упаковке, что и шестнадцатеричные цифры ascii.

Чтобы быть на 100% честным, я удивлен, что застежка на молниях не делает лучшую работу.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .