Контрольная сумма файла или 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\Desktop\b590.pdf MD5

контрольная сумма файла

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

CjwhLS0gV1AgUVVBRFMgQ29udGVudCBBZCBQbHVnaW4gdi4gMi4wLjMxIC0tPgo8ZGl2IGNsYXNzPSJxdWFkcy1sb2NhdGlvbiBxdWFkcy1hZDQ4ODM2IiBpZD0icXVhZHMtYWQ0ODgzNiIgc3R5bGU9ImZsb2F0Om5vbmU7bWFyZ2luOjBweDsiPgoKIDwhLS0gV1AgUVVBRFMgLSBRdWljayBBZFNlbnNlIFJlbG9hZGVkIHYuMi4wLjMxIENvbnRlbnQgQWRTZW5zZSBhc3luYyAtLT4gCgo8ZGl2IGlkPSJxdWFkcy1hZDEtcGxhY2UiIGNsYXNzPSJxdWFkcy1sbCI+DQogICAgICAgICAgICA8aW5zIA0KICAgICAgICAgICAgICAgICAgc3R5bGU9ImRpc3BsYXk6YmxvY2s7Ig0KICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWFkLWZvcm1hdD0iYXV0byINCiAgICAgICAgICAgICAgICAgZGF0YS1hZC1jbGllbnQ9ImNhLXB1Yi0zNDIxODQ0NjU0NDk2NDk1Ig0KICAgICAgICAgICAgICAgICBkYXRhLWFkLXNsb3Q9IjQ2ODk5MzQ5OTMiPjxzcGFuPkxvYWRpbmcuLi48L3NwYW4+PC9pbnM+PC9kaXY+DQogICAgICAgICAgICAgICAgIDxzY3JpcHQ+DQogICAgICAgICAgICAgICAgIGluc3RhbnQ9IG5ldyBhZHNlbnNlTG9hZGVyKCAnI3F1YWRzLWFkMS1wbGFjZScsIHsNCiAgICAgICAgb25Mb2FkOiBmdW5jdGlvbiggYWQgKXsNCiAgICAgICAgICAgIGlmIChhZC5jbGFzc0xpc3QuY29udGFpbnMoInF1YWRzLWxsIikpIHsNCiAgICAgICAgICAgICAgICBhZC5jbGFzc0xpc3QucmVtb3ZlKCJxdWFkcy1sbCIpOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0gICANCiAgICAgICAgfSk7PC9zY3JpcHQ+CiA8IS0tIGVuZCBXUCBRVUFEUyAtLT4gCgoKPC9kaXY+Cg== style="text-align: center;">certutil -hashfile C:\Users\Desktop\b590.pdf MD5 > C:\checksum.txt

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

сохранить контрольную сумму в файл

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

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

или

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

И так далее.

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

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

контрольные суммы скачиваемых образов

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

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

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

сверка контрольных сумм файла

контрольная сумма fsum fronted

HashCheck

Успехов.