Как проверить целостность архива и пароль в Windows, Linux и macOS

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

Ниже разобраны рабочие способы для Windows, Linux и macOS, различия между форматами ZIP, RAR и 7z, типичные ошибки и признаки того, что архив действительно повреждён, а не защищён паролем.

Зачем проверять архив до распаковки

Архив может «сломаться» по нескольким причинам: обрыв связи при скачивании, ошибка при копировании на флешку, сбой диска, повреждение при передаче через мессенджер или почту. Внешне файл выглядит нормально — размер есть, иконка на месте, но внутри часть данных искажена. Если начать распаковку, процесс оборвётся на середине, и вы получите частичные файлы, которые могут оказаться бесполезными.

Отдельная ситуация — зашифрованные архивы. Здесь две независимые проблемы:

  • целостность данных — совпадает ли содержимое с тем, что было упаковано;
  • правильность пароля — тем ли ключом шифровались данные.

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

Как это работает технически

При создании архива программа считает для каждого файла контрольную сумму (чаще всего CRC32) и записывает её внутрь архива вместе со сжатыми данными. При тестировании архиватор заново считает суммы и сравнивает их с записанными. Совпадение — данные целы. Расхождение — файл изменён или повреждён.

С зашифрованным архивом логика та же, но перед сравнением нужно расшифровать данные. Неверный пароль даёт бессмысленный набор байтов, контрольные суммы не сходятся, и программа сообщает об ошибке. Отсюда практический вывод: тест архива — это одновременно и проверка пароля, отдельной команды обычно не требуется.

Есть нюанс: в некоторых форматах имя файла тоже шифруется (например, опция шифрования имён в 7-Zip и RAR5). Если имена скрыты, то без правильного пароля вы даже не увидите список файлов — это первый быстрый способ понять, что пароль нужен и он либо верный, либо нет.

Проверка в Windows

7-Zip

Самый распространённый бесплатный вариант. Порядок действий:

  1. Щёлкните по архиву правой кнопкой мыши.
  2. Выберите пункт меню 7-Zip → «Протестировать» (Test).
  3. Если архив зашифрован, появится окно ввода пароля — введите его.
  4. Дождитесь завершения: в окне результатов будет строка «Всё нормально» (Everything is Ok) либо список ошибок с номерами повреждённых файлов.

Тест читает весь архив, но не записывает файлы на диск, поэтому проходит быстрее полной распаковки и не занимает место. Для больших многотомных архивов убедитесь, что все части лежат в одной папке и названы правильно — иначе тест прервётся с сообщением об отсутствии тома.

WinRAR

WinRAR имеет встроенную команду «Протестировать архив» — кнопка на панели инструментов после открытия архива или пункт в контекстном меню. Дополнительно полезна функция «Показать информацию» → вкладка с контрольными суммами: она отображает рассчитанные значения CRC для каждого файла, что удобно при сверке с суммами, опубликованными источником архива.

WinRAR также поддерживает записи восстановления (recovery record) в формате RAR: если архив слегка повреждён, но такая запись была добавлена при создании, WinRAR может исправить ошибки через меню «Инструменты» → «Восстановить архив». Это работает только для RAR и только при наличии записи восстановления — обычный ZIP так починить нельзя.

Встроенные средства Windows

Проводник Windows умеет распаковывать ZIP, но не имеет команды тестирования. Поэтому для проверки штатными средствами придётся просто распаковать архив во временную папку и удалить её после успеха. Это медленнее и требует места, зато не нужна установка программ. Для всех остальных форматов (7z, RAR) встроенных инструментов нет — понадобится сторонний архиватор.

Проверка в Linux

В Linux всё делается из терминала, и это самый гибкий вариант. Основные команды по форматам:

  • ZIP:unzip -t archive.zip. Ключ -t тестирует архив без распаковки. Если нужен пароль, утилита запросит его интерактивно, либо можно передать его ключом -P ‘пароль’.
  • RAR:unrar t archive.rar. Буква t — режим теста. Пароль запрашивается автоматически при необходимости.
  • 7z:7z t archive.7z или 7z t -p’пароль’ archive.7z. Утилита p7zip обрабатывает и собственный формат, и zip, и rar (при установленных соответствующих модулях).
  • tar.gz / tar.xz: классический tar не хранит контрольные суммы, поэтому полноценного теста нет. Косвенная проверка — gzip -t file.gz для самого сжатого потока или попытка распаковки в /dev/null: tar -tzf archive.tar.gz > /dev/null покажет, читается ли список файлов, хотя не проверит все данные.

Полезно направить вывод в журнал и проверить код возврата, особенно в скриптах:

unzip -t -P ‘пароль’ archive.zip >> test.log 2>&1 && echo OK || echo FAIL

Код возврата 0 означает успех, ненулевой — проблемы. Это позволяет автоматизировать проверку десятков архивов одним циклом.

Проверка в macOS

macOS построена на Unix, поэтому терминальные способы те же, что в Linux: unzip -t, unrar t, 7z t. Отличия в комплектации:

  • unzip предустановлен и работает сразу.
  • unrar и 7-Zip по умолчанию отсутствуют — их ставят через Homebrew (brew install unrar, brew install sevenzip или аналог; точное имя пакета зависит от версии репозитория).
  • Встроенный «Архивная утилита» (Archive Utility) только распаковывает, тестировать она не умеет.

Графические альтернативы — сторонние архиваторы вроде Keka или The Unarchiver, но именно функция тестирования там реализована не везде полноценно, поэтому надёжнее терминал.

Сводная таблица команд

Формат Windows (GUI) Linux / macOS (терминал)
ZIP 7-Zip → Протестировать; WinRAR → Тест unzip -t archive.zip
RAR WinRAR → Протестировать; 7-Zip (чтение RAR) unrar t archive.rar
7z 7-Zip → Протестировать 7z t archive.7z
tar.gz нет штатного теста tar -tzf archive.tar.gz > /dev/null (частичная проверка)

Как отличить неверный пароль от повреждённого архива

Это самая частая путаница. Сообщения разных программ выглядят по-разному, но смысл такой:

  • «Неверный пароль», «Wrong password», «CRC failed in encrypted file» — данные расшифрованы неправильно. Либо пароль неверный, либо он верный, но применён к другому архиву. Повреждение тоже возможно, но реже.
  • «Ошибка CRC», «Unexpected end of archive», «The archive is corrupt» в незашифрованном файле — физическое повреждение данных. Пароль здесь ни при чём.
  • «Не удаётся открыть файл как архив» — файл скачан не полностью или это вообще не архив (например, HTML-страница ошибки вместо файла).

Практический ориентир: если тест выдаёт ошибку CRC только в одном-двух файлах из сотни, скорее всего, повреждение при передаче. Если ошибка возникает сразу на первом файле и повторяется на всех — первым делом перепроверьте пароль, включая раскладку клавиатуры, регистр и возможные похожие символы (ноль вместо буквы O, единица вместо l).

Типичные ошибки при проверке

  • Проверка только первого тома многотомного архива. Тестировать нужно последний по порядку запуск или сам архив целиком — архиватор сам подхватит остальные части, если они рядом.
  • Копирование пароля с лишним пробелом. Пробел в конце скопированной строки — невидимая, но частая причина отказа. Вводите пароль вручную или очищайте буфер.
  • Разные кодировки имени файла. Архив, созданный в Windows с русскими именами файлов, при распаковке в Linux может показывать «кракозябры». Это не повреждение, а вопрос кодировки; современные версии unzip и 7z обычно справляются, но старые утилиты — нет.
  • Доверие размеру файла. Совпадение размера с заявленным ещё не гарантирует целостность: байты могут быть искажены при том же объёме. Сверяйте контрольную сумму всего файла (SHA-256), если источник её публикует.
  • Повторные попытки распаковки повреждённого архива. Если тест показал ошибку CRC, повторные попытки дадут тот же результат. Решение — перекачать файл или запросить его заново у отправителя.

Что делать, если архив повреждён

  1. Перекачайте файл из исходного источника — это решает большинство случаев.
  2. Для RAR с записью восстановления попробуйте функцию восстановления в WinRAR.
  3. Попробуйте другой архиватор: иногда один инструмент читает то, что другой отвергает, особенно на границе форматов.
  4. Если повреждён один том многотомного набора — замените только его.
  5. Если данные критичны, а копий нет, остаётся специализированное восстановление, но успех не гарантирован и зависит от масштаба повреждений.

Практические рекомендации

Оптимальный порядок работы с любым полученным архивом выглядит так:

  1. Убедитесь, что файл скачан полностью: сверьте размер, а лучше — контрольную сумму, если она опубликована.
  2. Запустите тест архива (не распаковку): 7-Zip → «Протестировать» в Windows, unzip -t, unrar t или 7z t в терминале.
  3. Введите пароль, когда программа его запросит, — успешный тест подтвердит и целостность, и правильность пароля.
  4. Только после сообщения «Всё нормально» распаковывайте в постоянное место.

Если вы регулярно работаете с большими архивами, поставьте 7-Zip на Windows и p7zip/unrar в Unix-системы: одна привычка запускать тест перед распаковкой избавляет от половины проблем с битыми файлами и забытыми паролями.

Материал носит информационный характер. При работе с архивами, полученными из недоверенных источников, соблюдайте осторожность: проверка целостности не защищает от вредоносного содержимого внутри архива — используйте антивирус и не запускайте файлы из непроверенных источников.

PEFile.ru