Контрольная сумма файла: проверка на Windows и Mac
Что такое контрольная сумма файла и как её проверить: certutil на Windows, md5 и shasum на Mac, онлайн-генераторы хешей и сверка с суммой разработчика.
Посчитайте прямо здесь: Text → MD5 Hash
Открыть инструмент целиком →Что такое контрольная сумма файла
Контрольная сумма (она же хеш) — это короткий «отпечаток» файла: строка из латинских букв и цифр фиксированной длины, которая вычисляется из содержимого файла особым алгоритмом. У двух одинаковых копий отпечаток всегда одинаковый, а если в файле изменился хотя бы один байт — сумма меняется до неузнаваемости. Проверить контрольную сумму скачанного файла значит посчитать такой отпечаток у себя и сверить с тем, что опубликовал разработчик. Совпало — файл доехал до вас целым и его никто не подменил по дороге. Не совпало — где-то по пути файл повредился или это уже не тот файл.
Эталонную сумму публикуют рядом с кнопкой загрузки: на странице релиза, в тексте рядом со ссылкой или отдельным файлом с расширением .md5 либо .sha256. Отсюда и план всей проверки: узнать, какой алгоритм указал разработчик, посчитать хеш у себя и сравнить две строки. Дальше — как это работает и три способа посчитать: на Windows, на Mac и Linux и в браузере.
Как это работает простыми словами
Хеш-функция читает файл как длинную последовательность байтов и перемешивает их по строгим правилам, выдавая в итоге строку заданной длины. Два свойства делают её удобной для проверки файлов. Первое: одинаковый вход всегда даёт одинаковый результат — на любом компьютере, в любой стране, хоть десять раз подряд. Второе: крошечное изменение входа полностью меняет результат. Вот реальная пара, я считал её прямо при подготовке статьи. Текстовый файл с фразой «отчёт за квартал»:
MD5: 719a8440dd21296af7cbcd47e174b45c
SHA-256: f6e5b53257d9471ba74fad1c610c58ab6fa22422d5b554916efc5aad0d58f113Добавили в конец одну точку — один-единственный байт — и суммы стали другими целиком:
MD5: caf666caf96b365180deb9dca0875a00
SHA-256: 12f88112cd01371e0f3ca54fc953e691237222c915afe9ecb822a9952ee37cadИменно поэтому хеш ловит даже незаметные глазу повреждения: недокачанный хвост архива или один бит, испорченный на диске, гарантированно изменят сумму. Что именно покажет сверка в каждой житейской ситуации:
| Ситуация | Что покажет проверка хеша |
|---|---|
| Интернет оборвался на середине загрузки | Недокачанный файл даст другой хеш — битая загрузка видна сразу, ещё до запуска файла |
| Архив распаковывается с ошибкой | Повреждение при скачивании или хранении изменит сумму — сразу ясно, что дело в файле, а не в архиваторе |
| Установщик скачан с левого зеркала и содержит вирус | Подменённый файл не совпадёт с суммой разработчика — при условии, что эталон взят с официального сайта, а не там же, где и файл |
| Непонятно, та ли это версия программы | У версий 2.4 и 2.4.1 суммы разные — сверка различит их точнее, чем имя файла |
Какой алгоритм выбрать: MD5, SHA-256 или SHA-512
Главного правила достаточно: сверяйте тем алгоритмом, каким считал разработчик. Если на сайте опубликован MD5 — считайте MD5, если SHA-256 — SHA-256. Суммы разных алгоритмов друг с другом несравнимы: это просто разные строки. Если выбор за вами, картина такая:
| Алгоритм | Длина хеша | Состояние | Когда использовать |
|---|---|---|---|
| MD5 | 32 символа | Для безопасности устарел: коллизии умеют подделывать с 2004 года. Для проверки целостности по-прежнему пригоден | Когда разработчик публикует только MD5; быстрая проверка «доехал ли файл» |
| SHA-256 | 64 символа | Действующий стандарт | Выбор по умолчанию: дистрибутивы, обновления, документы, всё, где есть риск злонамеренной подмены |
| SHA-512 | 128 символов | Действующий стандарт | То же, что SHA-256, с более длинным запасом прочности; нужен, когда эталон опубликован именно в SHA-512 |
Моё мнение простое: по умолчанию беру SHA-256, потому что он есть везде и его не стыдно рекомендовать. MD5 для бытовой проверки «файл не битый при скачивании» тоже рабочий — случайная порча почти наверняка изменит хеш, — но против того, кто подменяет файлы нарочно, он уже не защита. Почему именно так и чем алгоритмы отличаются внутри, подробнее разобрано в статьях про MD5 и сравнение хеш-функций.
Способ 1. Windows: командная строка
Самая частая задача — проверить MD5-сумму скачанного файла — на Windows решается одной встроенной командой. Утилита называется certutil, ничего скачивать и устанавливать не нужно.
- Откройте командную строку: нажмите Win+R, введите
cmdи Enter. В Windows 11 проще кликнуть правой кнопкой по «Пуск» и выбрать «Терминал». - Наберите команду в формате
certutil -hashfile путь_к_файлу алгоритм. Например:
certutil -hashfile C:\Users\you\Downloads\programma-setup.exe MD5- Через секунду-две увидите результат. Посередине — та самая контрольная сумма:
Хэш MD5 C:\Users\you\Downloads\programma-setup.exe:
3a8b8eb48f87d7b1d916b7e30d5e4c37
CertUtil: -hashfile — команда успешно выполнена.На английской Windows последняя строка будет «command completed successfully» — на сверку это не влияет, нужна только строка с хешем. Для SHA-256 та же команда с другим алгоритмом в конце:
certutil -hashfile C:\Users\you\Downloads\ubuntu-24.04.1-desktop-amd64.iso SHA256Две мелочи, которые экономят время. Путь к файлу можно не набивать руками — перетащите файл прямо в окно терминала, путь вставится сам. И алгоритм пишется слитно: SHA256, без дефиса, иначе утилита ответит ошибкой.
Способ 2. Mac и Linux: md5 и shasum
На macOS откройте «Терминал» (папка «Программы → Утилиты») и наберите:
md5 ~/Downloads/programma.dmgОтвет выглядит так:
MD5 (~/Downloads/programma.dmg) = 3a8b8eb48f87d7b1d916b7e30d5e4c37Для SHA-256 на Mac команда другая: shasum -a 256 имя_файла. В Linux утилиты называются чуть иначе — md5sum и sha256sum (хотя shasum там тоже обычно есть), и хеш печатается в начале строки, а имя файла — после него:
shasum -a 256 ubuntu-24.04.1-desktop-amd64.iso
f6e5b53257d9471ba74fad1c610c58ab6fa22422d5b554916efc5aad0d58f113 ubuntu-24.04.1-desktop-amd64.isoСовет из практики: сначала сделайте cd Downloads, чтобы не писать длинный путь целиком, — меньше шансов опечататься в команде, которая и так выглядит пугающе для тех, кто терминал не открывал никогда.
Способ 3. Онлайн-генераторы хешей
Иногда командная строка неудобна: планшет, чужой компьютер, нужно быстро проверить хеш онлайн — например, посчитать сумму строки или короткого текста и сверить её с письмом или сайтом. Тогда быстрее онлайн-генератора ничего нет: вставили содержимое — получили сумму. Наши инструменты считают всё прямо в браузере: то, что вы вводите, не отправляется на сервер и нигде не сохраняется, так что хешировать можно даже пароли и конфиденциальные строки. MD5-генератор, SHA-256-генератор и SHA-512-генератор работают одинаково: вставили текст, выбрали нужный инструмент, скопировали результат.
Одна честная оговорка: генераторы принимают текст, вставленный в окно, поэтому образ диска или установщик таким способом не посчитать — большие бинарные файлы остаются за командной строкой из способов 1 и 2, которая к тому же работает без интернета. Когда какой способ выбирать:
| Способ | Когда выбирать |
|---|---|
| certutil (Windows) | Скачанные файлы любого размера на своём компьютере; не требует интернета и установок |
| md5 / shasum (Mac, Linux) | То же на macOS и Linux; плюс удобно в скриптах и для пакетной проверки |
| Онлайн-генератор | Строки и тексты, когда терминала под рукой нет; всё считается в браузере, данные не покидают устройство |
Как сверить суммы: совпало и не совпало
Сама сверка — три шага. Первый: найдите эталонную сумму на сайте разработчика — обычно она напечатана рядом со ссылкой на загрузку или лежит отдельным файлом .sha256. Второй: посчитайте хеш своего файла любым способом выше. Третий: сравните две строки. Практический приём — сравнивать с конца, а не с начала: глаз цепляется за первые символы, а расходиться хеши чаще всего начинают с середины или хвоста.
| Результат | Что он значит | Что делать |
|---|---|---|
| Совпали | Файл доехал целым и совпадает с тем, что опубликовал разработчик | Ничего. Можно устанавливать |
| Не совпали | Либо загрузка побилась по дороге, либо файл — не тот, что публиковали | Удалить файл и скачать заново, лучше с официального сайта. Затем посчитать хеш ещё раз |
| Снова не совпали | Дважды битая загрузка — редкость. Похоже, сумма считалась не для этого файла или файл подменён | Не запускать файл. Сверить версию, сборку и алгоритм с эталоном; если и тут всё сходится, а хеш нет — искать другой источник и сообщить разработчику |
Типовые ошибки при сравнении
| Ошибка | Решение |
|---|---|
Разный регистр букв: у вас 3A8B…, у разработчика 3a8b…, «не совпадает» | В шестнадцатеричной записи регистр не имеет значения: A и a — одна и та же цифра. Приведите обе суммы к одному виду, например строчными, и сравните снова |
| Лишний пробел или перенос строки при копировании | Копируйте хеш целиком одним куском без пробелов по краям: невидимый символ на конце ломает сравнение, особенно если скармливать строки программе |
| Сравниваете MD5 с SHA-256 | 32 символа против 64 — это суммы разных алгоритмов, они не могут совпадать в принципе. Пересчитайте тем алгоритмом, которым публиковал разработчик |
| Сумма указана для другой версии файла | Хеш у каждого файла свой: эталон для версии 2.4 никогда не совпадёт с файлом версии 2.5. Проверьте, что эталон — именно для вашей сборки и разрядности |
И ещё одна, на мой взгляд, самая коварная: сравнение «на глаз» по первым символам. Совпадение первых восьми знаков ничего не гарантирует — сверяйте всю строку до конца, этим и хорош приём со сравнением с хвоста.
Частые вопросы
Суммы не совпадают. Файл точно заражён?
Не спешите с этим выводом. В подавляющем большинстве случаев виновата битая загрузка: обрыв связи, кривой прокси, переполненный диск. Порядок действий такой: перекачать файл, сверить хеш ещё раз, затем проверить версию и алгоритм. Только если и после чистой перекачки сумма не сходится с эталоном, файл стоит считать подозрительным — удалить его и скачать из другого источника.
Можно ли по контрольной сумме восстановить файл?
Нет. Хеш — функция в одну сторону: из гигабайтного файла получается 64 символа, и обратно из этих символов файл не собрать. Отпечаток вообще не содержит содержимого — это лишь гарантия совпадения. Поэтому «восстановить битый файл по хешу» невозможно: если файл побился, его можно только скачать заново. Как устроено само хеширование, разобрано в статье про MD5 простыми словами.
Почему у двух копий одного файла хеш одинаковый?
Потому что хеш считается по содержимому, а не по имени, дате или расположению. Скопируйте файл и переименуйте — сумма не изменится. А вот пересохранение или упаковка в архив создают уже другой файл с другим содержимым, и его хеш будет другим.
Какой алгоритм надёжнее?
Из трёх описанных — SHA-512: у него самый длинный отпечаток и самый большой запас прочности. Но на практике разницы между SHA-256 и SHA-512 в бытовых задачах вы не заметите, а вот разницу между SHA-256 и MD5 заметит тот, кто решил подменить ваш файл. Поэтому короткий ответ: SHA-256 как стандарт, MD5 — только для проверки целостности, не для безопасности. Детальное сравнение — в руководстве по SHA-256 и таблице сравнения хеш-функций.
Хеш и подпись файла — это одно и то же?
Нет, хотя без хеша подписи не было бы. Цифровая подпись — это хеш файла, зашифрованный закрытым ключом разработчика: так подтверждается и целостность, и авторство. Голый хеш подписи не заменяет — если злоумышленник подменил файл, он может подменить и опубликованную рядом сумму. Подпись устойчивее именно потому, что подделать ключ намного сложнее, чем перепечатать строку на сайте.
Нужно ли проверять хеш каждого скачанного файла?
Честный ответ: все так не делают, и это нормально. Разумный минимум — файлы, которым вы даёте много прав: образы операционных систем, установщики, кошельки, всё, что запускается от администратора и скачано не с официального сайта. На такую проверку уходит минута.
Коротко
Контрольная сумма — самая дешёвая страховка при скачивании файлов: одна команда вместо возможных часов на переустановку или лечение системы. Запомнить нужно немногое. На Windows — certutil -hashfile файл MD5 (или SHA256), на Mac и Linux — md5 файл и shasum -a 256 файл, для строк и текстов — SHA-256-генератор и соседние инструменты, которые считают хеш прямо в браузере. Сверили с суммой разработчика — совпало, ставьте; не совпало — перекачайте; не совпало снова — не запускайте и разбирайтесь. А если захочется понять, откуда берутся сами эти строки и почему они такие длинные, начните со статьи про SHA-256.
Попробуйте эти инструменты
Похожие статьи
Как создать надёжный пароль: генератор паролей
Правила создания паролей, длина, символы, энтропия, менеджеры паролей, двухфакторная аутентификация.
MD5 хеш: что это и безопасно ли использовать
Алгоритм MD5, хеширование, коллизии, почему MD5 не для паролей, где ещё можно использовать.
SHA-256 — что это такое простыми словами: как работает и где применяется
SHA-256 — что это за хеш простыми словами: как работает алгоритм, где применяется (биткоин, SSL, подписи), чем отличается от MD5 и SHA-1.
UUID — что это такое: версии, GUID и чем они отличаются
UUID — что это такое простыми словами: устройство идентификатора, версии v4 и v7, чем GUID отличается от UUID и где идентификаторы используются.