Контрольная сумма – это основной доступный способ проверить подлинность файла, полученного по открытым каналам связи. По своей сути контрольная сумма является хеш-функцией, которая является односторонним криптографическим преобразованием.
Это значит, что для любого исходного набора данных хеш-функция будет уникальной, но по ней нельзя однозначно определить к какому именно набору данных она относится. Также при любом изменении исходных данных, даже на 1 байт, хеш сразу же непредсказуемо изменится.
Проверка файла по контрольной сумме – это лучший способ убедиться в его подлинности. Все что нам нужно, это вычислить контрольную сумму полученного файла и сравнить ее с опубликованной в источнике.
Это также сразу позволит выявить битые файлы и перекачать их, даже если в источнике вы не сомневаетесь и используете защищенные протоколы доступа к нему.
Вычислить контрольные суммы файлов несложно, для этого даже не нужно никаких сторонних утилит, все можно сделать средствами ОС.
Начнем с Linux, в зависимости от алгоритма подписи мы будем использовать несколько утилит.
Начнем с MD5, на сегодня данный алгоритм устарел, но все равно еще встречается, чтобы получить MD5 контрольную сумму файла выполните:
md5sum <имя_файла>
Актуальными на сегодняшний день являются алгоритмы SHA с битностью в 1, 256, 384 или 512 бит. Алгоритм SHA1 является устаревшим, поэтому сегодня чаще всего используется SHA256.
Чтобы проверить контрольную сумму по алгоритму SHA выполните:
sha256sum <имя_файла>
При этом число в команде должно соответствовать разрядности алгоритма.
В Windows для этих целей удобнее всего использовать PowerShell:
Get-FileHash <имя_файла> -Algorithm SHA256
Опция Algorithm может принимать следующие значения: MD5, SHA1|256|384|512
Для получения более удобочитаемого вывода можете добавить к команде:
Get-FileHash <имя_файла> -Algorithm SHA256 | Format-List
Как видим, вычислить контрольную сумму файла совсем не сложно, поэтому не стоит пренебрегать этим простым, но эффективным способом проверить подлинность полученных данных.