
Контрольная сумма файла или Checksum.
28.02.2019В статье описывается понятие что такое контрольная сумма файла, приёмы, с помощью которых она рассчитывается и зачем вообще она нам, пользователям, нужна? Вот лишь главные пункты, где без сверки контрольной суммы файла не обойтись.
Итак, вы качаете файл большого размера? Фильм это или игра — не суть: вы должны быть уверены, что игра установится без ошибок, а видео будет проигрываться гладко. Вы купили 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 на вывод результатов команды в указанный файл:
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 (здесь есть русский; после установки имеет вид дополнительного расширения в контекстном меню файла/папки)
Успехов.