Как проверить файл по контрольной сумме SHA-256: инструкции для Windows, macOS и Linux

Проверка контрольной суммы SHA-256 — это способ убедиться, что скачанный файл не повреждён при передаче и не был подменён. Принцип простой: вы вычисляете для своего файла уникальную «отпечаток» длиной 64 символа и сравниваете его с отпечатком, который опубликовал источник. Если строки совпадают — содержимое идентично. Если нет — файл либо испорчен при загрузке, либо изменён, и использовать его не стоит.

Что такое SHA-256 и зачем она нужна

SHA-256 — это криптографическая хеш-функция. Она принимает на вход данные любого размера (файл на килобайт или фильм на десятки гигабайт) и выдаёт строку из 64 шестнадцатеричных символов. Ключевое свойство: даже минимальное изменение содержимого — один изменённый байт, добавленный пробел — даёт совершенно другой результат. Поэтому хеш работает как цифровой отпечаток пальца файла.

Сравнение сумм решает две практические задачи:

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

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

Где взять эталонную сумму

Прежде чем что-то вычислять, найдите официальное значение. Обычно оно размещается:

  • на странице загрузки рядом со ссылкой на файл — часто мелким текстом вида «SHA-256» или «SHA256 checksum»;
  • в отдельном текстовом файле с расширением .sha256, .sha256sum или .txt, лежащем рядом с самим дистрибутивом;
  • в документации к релизу или в анонсе выпуска;
  • в репозитории проекта, если речь о пакете или образе системы.

Скопируйте значение целиком — все 64 символа. Лишний пробел или обрезанная строка приведут к ложному несовпадению.

Как проверить файл в Windows

В современных версиях Windows (10 и новее) есть встроенная утилита certutil, сторонние программы не обязательны.

  1. Откройте проводник и перейдите в папку с файлом.
  2. Щёлкните по адресной строке окна, введите cmd и нажмите Enter — откроется командная строка уже в нужной папке.
  3. Выполните команду, подставив имя своего файла:
    certutil -hashfile «имя_файла.iso» SHA256
  4. Дождитесь результата. Утилита выведет хеш в несколько строк без пробелов — при сравнении их нужно убрать либо просто сверять символы по порядку.
  5. Сравните полученную строку с эталонной. Удобный способ: щёлкните правой кнопкой по заголовку окна командной строки, выберите выделение, отметьте вывод мышью и скопируйте, затем вставьте обе строки в любой текстовый редактор рядом.

Если файл лежит в другом месте, укажите полный путь, например certutil -hashfile «C:\Downloads\имя_файла.zip» SHA256.

Альтернатива через PowerShell: команда Get-FileHash «имя_файла» -Algorithm SHA256 делает то же самое и сразу выводит результат одной строкой.

Как проверить файл в macOS и Linux

В обеих системах используется терминал и утилита shasum (macOS) или sha256sum (Linux).

  1. Откройте Терминал.
  2. Перейдите в папку с файлом: cd ~/Downloads (или другой путь).
  3. Выполните команду:
    • в Linux: sha256sum имя_файла.iso
    • в macOS: shasum -a 256 имя_файла.iso
    • Через несколько секунд (на больших файлах — дольше) появится строка вида «хеш имя_файла».
    • Сравните первые 64 символа до имени файла с эталонным значением.

    Если источник предоставил файл с расширением .sha256, можно автоматизировать сравнение. В Linux положите оба файла в одну папку и выполните sha256sum -c имя_файла.sha256: утилита сама посчитает сумму и сообщит «OK» или «FAILED». В macOS аналогично работает shasum -a 256 -c имя_файла.sha256.

    Как правильно сравнивать значения

    Ручное сравнение двух длинных строк глазами — частый источник ошибок. Глаза «дорисовывают» совпадение, особенно если строки похожи. Надёжнее действовать так:

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

    Результат трактуется однозначно: полное совпадение всех 64 символов означает, что содержимое файла соответствует эталону. Любое отличие хотя бы в одном символе — файл не тот, и его нужно перекачать.

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

    • Проверяется не тот файл. Сумма считается для конкретного файла; если вы скачали архив и распаковали его, хеш нужно считать для того файла, для которого опубликовано значение — чаще всего для самого архива, а не для содержимого внутри.
    • Обрезанная или искажённая эталонная строка. При копировании с сайта легко потерять часть символов. Всегда проверяйте длину: ровно 64 знака.
    • Лишние символы в выводе certutil. Windows разбивает хеш на строки — при ручном наборе или копировании легко пропустить перенос.
    • Эталон взят из ненадёжного места. Сумма со случайного форума или зеркала без репутации не доказывает подлинность. Ориентируйтесь на сайт разработчика, официальную документацию или подписанные каналы публикации.
    • Файл изменился после проверки. Хеш подтверждает состояние файла на момент проверки. Если потом файл редактировался, пересчитайте сумму заново.

    Если суммы не совпали

    Несовпадение — повод остановиться, а не искать объяснения «почему всё равно можно пользоваться». Порядок действий:

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

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

    SHA-256, MD5 и CRC: какая сумма надёжнее

    Встречаются разные типы контрольных сумм, и они не взаимозаменяемы по уровню защиты.

    Алгоритм Длина результата Основное назначение Ограничения
    CRC32 8 символов Контроль случайных ошибок при передаче и хранении Не защищает от намеренной подмены: подделать легко
    MD5 32 символа Исторически использовался для целостности и подписей Криптографически устарел, известны практические коллизии
    SHA-1 40 символов Ранее применялся широко Признан уязвимым к подбору коллизий, постепенно выводится из использования
    SHA-256 64 символа Современный стандарт проверки целостности и подлинности файлов Медленнее CRC, но для разовой проверки файлов это несущественно

    Практический вывод: если источник публикует несколько вариантов, ориентируйтесь на SHA-256. MD5-сумма лучше, чем ничего, но против намеренной подмены она слабая защита.

    Когда проверка действительно нужна

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

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

    Что делать дальше

    Перед следующей важной загрузкой найдите на странице источника блок с контрольными суммами, скопируйте значение SHA-256 и сразу после скачивания выполните одну команду: certutil -hashfile … SHA256 в Windows или sha256sum … в Linux. На всю процедуру уходит меньше минуты, а защита распространяется и на случай битой загрузки, и на случай подмены файла. Если проект дополнительно публикует цифровую подпись (например, GPG), она даёт ещё более сильную гарантию, поскольку связывает сумму с личностью подписавшего, — при критичных загрузках стоит освоить и этот уровень проверки.

    PEFile.ru