ИБ (Информационная Безопасность)
October 21

Как проверить хэш-сумму файла на Windows и Linux

Проверка контрольной суммы файла - это способ удостовериться в корректности его загрузки и убедиться, что файл не был подменен хакерской атакой. Проверять хэш-сумму файла следует независимо от ОС, которую ты используешь, но мы рассмотрим способы только на Windows и Linux.

Windows:

Для проверки хэш-суммы, в Windows предустановлена утилита certutil. Например, чтобы посчитать контрольную сумму SHA1 с помощью утилиты CertUtil, нужно запустить командную строку и ввести команду:
certutil -hashfile путь_к_файлу алгоритм

Пример на образе Win10:
certutil -hashfile win10_1909_Russian_x64.iso SHA256

Если полученная контрольная сумма совпадает с оригинальной - значит проверка выполнена успешно.

Linux:

Для проверки можно использовать консольные утилиты. Рассмотрим на примере дистрибутива Linux Mint. Скачиваем образ с официального сайта и смотрим хэш-сумму файла:

ccf482436df954c0ad6d41123a49fde79352ca71f7a684a97d5e0a0c39d7f39f *linuxmint-22.1-cinnamon-64bit.iso
d286306d0f40bd7268f08c523ece5fba87c0369a27a72465a19447e3606c5fa0 *linuxmint-22.1-mate-64bit.iso
6451496af35e6855ffe1454f061993ea9cb884d2b4bc8bf17e7d5925ae2ae86d *linuxmint-22.1-xfce-64bit.iso

Меня интересует только этот:

ccf482436df954c0ad6d41123a49fde79352ca71f7a684a97d5e0a0c39d7f39f *linuxmint-22.1-cinnamon-64bit.iso

Это хэш-сумма sha256. В Linux есть утилита sha256sum. Посмотрим на ее возможности:
sha256sum --help

sage: sha256sum [OPTION]... [FILE]...
Print or check SHA256 (256-bit) checksums.

With no FILE, or when FILE is -, read standard input.
  -b, --binary          read in binary mode
  -c, --check           read checksums from the FILEs and check them
      --tag             create a BSD-style checksum
  -t, --text            read in text mode (default)
  -z, --zero            end each output line with NUL, not newline,
                          and disable file name escaping

The following five options are useful only when verifying checksums:
      --ignore-missing  don't fail or report status for missing files
      --quiet           don't print OK for each successfully verified file
      --status          don't output anything, status code shows success
      --strict          exit non-zero for improperly formatted checksum lines
  -w, --warn            warn about improperly formatted checksum lines

      --help        display this help and exit
      --version     output version information and exit

The sums are computed as described in FIPS-180-2.
When checking, the input should be a former output of this program.
The default mode is to print a line with: checksum, a space,
a character indicating input mode ('*' for binary, ' ' for text
or where binary is insignificant), and name for each FILE.

There is no difference between binary mode and text mode on GNU systems.

GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Report any translation bugs to <https://translationproject.org/team/>
Full documentation <https://www.gnu.org/software/coreutils/sha256sum>
or available locally via: info '(coreutils) sha2 utilities'

Используем sha256sum для проверки хэш-суммы скачанного образа:
sha256sum -b linuxmint-22.1-cinnamon-64bit.iso

Чтобы не сравнивать самостоятельно хэш-сумму загруженного файла с хэш-суммой, представленной на сайте, можно использовать grep. Для этого копируем хэш-сумму с сайта:

И вставляем в команду для сравнения:
sha256sum -b linuxmint-22.1-cinnamon-64bit.iso | grep "ccf482436df954c0ad6d41123a49fde79352ca71f7a684a97d5e0a0c39d7f39f"

Как видно на скриншоте, хэш-сумма совпадает с оригиналом и это означает, что скачанный образ успешно прошел проверку. Точно также можно использовать утилиту md5sum.


Мой Telegram

Мой GitHub

Поддержать автора донатом