Контрольная сумма файла или Checksum.

28.02.2019 0 Автор GodKnowses

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

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

Вы купили SD-диск или флешку на АлиЭкспресс? Вам нужно удостовериться, не побита ли она и соответствует ли реальный объём указанному продавцом… Вот самый быстрый и простой способ подделать объём флешки.

Вы скачали файл, но есть сомнения в его подлинности? Перед установкой можно проверить, не “добавил” ли к его содержимому некий злоумышленник что-то зловредное, которое после инсталляции или даже простого открытия файла начнёт работать против вас…

Что такое контрольная сумма?

Название появилось от summation check (саммэйшен чек) – число, вычисляемое по особым правилам по содержимому блока данных с целью проверки получателем целостности данных при хранении или передаче. Если контрольная сумма, вычисленная получающим устройством, не совпадает с принятой суммой, то вывод один – целостность данных нарушена. Причиной тому может быть “кривое” интернет-соединение, подделка на этапе составления/копирования файла на стороне сервера, или неисправность принимающего устройства (а иногда и просто подлог со стороны его продавца).

Откуда её взять-то?

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

Что может Windows?

Уже в версии Windows 7 есть замечательная утилита certutil.exe, и с её помощью мы научимся вычислять и  сверять контрольную сумму. В примере будет использоваться самый ходовой на данный момент алгоритм MD5 – именно он подходит для описанных в начале статьи задач (с командами, нижеописываемыми, прокатят также SHA256 и другие). Согласно Microsoft, утилита certutil.exe призвана снимать и выводить на экран информацию о конфигурации CA (авторизованной сертификации), работать со службами сертификатов, резервировать и восстанавливать компоненты CA, а также сверять сами сертификаты, парные ключи и цепочки хранящихся сертификатов. А мы сейчас с вами вычислим контрольную сумму любого файла.

К слову сказать, с появлением более современных версий Windows и обновлённых версий PowerShell возможности для вычисления и сверки контрольных сумм многократно усилились. Так, для работы можно попробовать апплет в виде:

Get-FileHash путь-к-файлу -Algorithm MD5

Но подробности я пока опущу и остановлюсь на вседоступных вариантах расчётов.

certutil -hashfile полный-путь-к-файлу MD5

К примеру, мне нужна контрольная сумма файла pdf:

Команда примет вид:

certutil -hashfile C:\Users\1\Desktop\b590.pdf MD5

Если вы желаете у видеть чек-сумму в текстовом файле, можно просто воспользоваться заданием к cmd на вывод результатов команды в указанный файл:

certutil -hashfile C:\Users\1\Desktop\b590.pdf MD5 > C:\checksum.txt

Ищите файл с именем checksum.txt корне диска С:.

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

certutil -hashfile C:\Users\1\Desktop\b590.pdf MD5 | find /i /v "md5" | find /i /v "certutil"

или

certutil -hashfile C:\Users\1\Desktop\b590.pdf SHA256 | find /i /v "md5" | find /i /v "certutil"

И так далее.

Контрольная сумма файла есть – сверяем

Если вы пытаетесь проверить контрольную сумму, её можно узнать у “поставщика” файла. Обнаружить их нетрудно, ибо добросовестный хозяин особо на это укажет на сайте или вложит файл с информацией для сверки в архив.

Программы для работы с контрольными суммами в Windows

Пробегусь бегло, ибо смысл вам понятен, а принцип работы у них примерно одинаков. Их больше, чем в моём списке, но вам и так хватит с избытком. А проверяю результаты с полученными от certutil.exe:

    • IgorWare Hasher
    • Fsum Frontend
    • HashTab
    • HashCheck (здесь есть русский; после установки имеет вид дополнительного расширения в контекстном меню файла/папки)

Успехов.