Два ZIP удобно сравнивать по их внутренним каталогам: формат хранит сведения о путях, размерах, методах упаковки и контрольных значениях записей. Это позволяет быстро увидеть разницу между версиями сайта, комплекта документов, выгрузки или резервной копии, не просматривая каждую папку вручную.
Загрузите обе версии в инструмент сравнения ZIP Helionix. Укажите старый файл первым, а новый вторым: тогда «добавлено» будет означать появление записи в новой версии, а «удалено» — её отсутствие.
Какие данные ZIP помогают сопоставлению
Основной список записей расположен в центральном каталоге ZIP. В нём обычно находятся имя, флаги, метод сжатия, CRC-32, сжатый и исходный размер, время и дополнительные поля. Локальные заголовки сопровождают сами данные. Если служебные сведения противоречат друг другу или каталог оборван, сравнение должно сообщить о проблеме, а не молча считать запись отсутствующей.
| Признак | Как использовать | Ограничение |
|---|---|---|
| Путь | Связать логически одну запись в двух ZIP | Переименование выглядит как удаление и добавление |
| Исходный размер | Быстро исключить очевидно разные данные | Одинаковый размер не означает одинаковое содержание |
| CRC-32 | Обнаружить обычные изменения и повреждения | Не является криптографическим хешем |
| Сжатый размер | Оценить различие упаковки | Зависит от метода и уровня сжатия |
Порядок сравнения двух ZIP
- Переименуйте копии так, чтобы версии нельзя было перепутать.
- Убедитесь, что скачивание завершено и размер не равен размеру временного файла.
- Откройте «Сравнить архивы» и выберите оба ZIP.
- Сначала оцените ошибки чтения и общее число записей.
- Проверьте удалённые пути: среди них могут быть обязательные конфигурации и документы.
- Изучите изменённые элементы по исходному размеру, CRC и при необходимости SHA-256.
- Отдельно посмотрите новые исполняемые файлы и неизвестные расширения.
Почему одинаковое содержимое даёт разные ZIP
Один архиватор может использовать Deflate, другой — Store, а третий изменить уровень сжатия. Кроме того, меняются порядок записей, временные метки, комментарий архива, extra fields и версия программы. Поэтому различный размер ZIP или хеш всего контейнера не доказывает изменение документов. Сначала сравните каталог, затем — декодированные данные.
Как учитывать папки и имена
Приведите обратные и прямые слеши к одному виду, уберите ведущий ./ и не позволяйте сегментам ../ выходить выше корня. Решите заранее, считать ли Report.pdf и report.pdf разными. На Linux это разные пути, а в типичной конфигурации Windows они могут конфликтовать. Для кириллицы важно учитывать Unicode-нормализацию: визуально одинаковые названия способны иметь разную последовательность кодовых точек.
Зашифрованные и повреждённые ZIP
Без действующего пароля нередко можно увидеть имена и служебные параметры, но нельзя надёжно подтвердить содержимое зашифрованных записей. Используйте только известный пароль к своему файлу. Если не совпадает CRC, это может означать повреждение, неверный пароль или ошибку декодирования. Сохраните оригинал и сначала повторите скачивание из доверенного источника.
Локальные заголовки и центральный каталог
В исправном ZIP сведения из центрального каталога согласуются с локальными заголовками записей. При потоковом создании часть значений может находиться в отдельном дескрипторе данных, поэтому простое ожидание одного расположения приводит к ложным ошибкам. Корректный анализатор следует правилам формата, проверяет границы и не доверяет заявленному размеру безусловно. Если один ZIP читается лишь частично, отчёт должен назвать конкретные непроверенные записи, а не строить вывод о полном совпадении на основе доступного фрагмента.
Для SFX-архива дополнительно учитывается исполняемая оболочка перед структурой ZIP. Она меняет внешний хеш и размер, но не обязательно внутренний набор.
Частые вопросы
Можно ли определить переименованный файл?
Да, как вероятное переименование: путь исчез в старом месте и появился в новом, а размер и сильный хеш содержимого совпали. Это полезная интерпретация, но её лучше показывать отдельно от точного совпадения пути.
Следует ли сравнивать даты?
Для контроля содержимого обычно нет: дата меняется при копировании и упаковке. Для строгой проверки поставки дата и атрибуты могут быть значимы.
Что важнее — CRC или размер?
Используйте их вместе. Размер быстро отбрасывает различия, CRC подтверждает больше, а криптографический хеш содержимого даёт более сильную уверенность.
Итог
Сравнение ZIP нужно строить от пути к содержимому: путь связывает запись, размер и CRC показывают вероятное состояние, а потоковый хеш подтверждает критичные совпадения. Метаданные и способ упаковки анализируйте отдельно, чтобы не принять техническую переупаковку за правку документов.
