Из-за временных ограничений на территории РФ наблюдаются проблемы с оплатой. Если платёж не проходит, оставьте запрос в службу поддержки.Служба поддержки работает 24/7 — мы всегда на связи по вопросам хостинга и серверов.Открыт прием заявок на аренду выделенных серверов и размещение оборудования в дата-центре.Напоминаем: рекомендуем включить резервное копирование для дополнительной защиты данных.Доступна новая линейка VPS/VDS с NVMe-дисками и увеличенной производительностью.Технические работы на части серверов завершены. Все сервисы работают в штатном режиме.
Статья3 мин чтенияПросмотры0

Как проверить целостность файла с помощью SHA-256

Сравниваем контрольную сумму скачанного архива с доверенным значением и разбираем, что такая проверка доказывает, а чего она не подтверждает.

Два одинаковых внешних накопителя для сравнения копий файла
В этой статье

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

Вычислите сумму готового файла

Пример рассчитан на GNU Coreutils в Linux. Файл archive.tar.gz — условное имя: подставьте свой путь и дождитесь полного завершения загрузки.

sha256sum -- archive.tar.gz

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

Сравнивать нужно всё значение, а не первые и последние несколько символов. Если есть доверенный файл контрольных сумм в поддерживаемом формате, проверку удобнее поручить утилите:

sha256sum --check SHA256SUMS

Проверьте происхождение ожидаемой суммы

Файл SHA256SUMS в примере должен быть получен из доверенного источника. Совпадение с суммой, присланной тем же неизвестным отправителем вместе с архивом, подтверждает согласованность пары, но не подлинность поставщика.

Если разработчик публикует подписанный список сумм, проверка подписи — отдельная задача с доверенным ключом. Не подменяйте её простым сравнением SHA-256. Точно так же совпадение хеша не означает отсутствие вредоносного кода в исходном файле.

Разберите неуспешную проверку

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

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

Пример с резервной копией

Если архив скопировали на другой носитель, сравнение хеша до и после передачи помогает проверить побайтовое совпадение. Но для рабочего резервирования этого мало: архив может быть целым и при этом не содержать нужной базы данных или относиться к неправильному моменту времени.

Поэтому храните рядом сведения о том, что именно архивировалось и когда. Проверка восстановления в отдельной среде отвечает на другой вопрос — можно ли вернуть работоспособную систему. Хеш эту проверку не заменяет.

Что считать завершённой проверкой

Зафиксируйте имя и версию файла, источник ожидаемой суммы, алгоритм и результат сравнения. Если файл затем изменяется или пересобирается, прежняя проверка к нему больше не относится. Перед использованием убедитесь, что это тот же проверенный объект.

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

Обсуждение 0

Делись опытом и задавай вопросы. Комментарии без ссылок появляются после проверки редактором.

Пока никто не написал. Начни обсуждение.