Всем привет! Сегодня хотелось бы вам рассказать о встроенных инструментах операционных систем для расчета контрольных сумм. Рассмотрим три ОС, это Windows, MacOS и Linux на примере Astra Linux.
Бывает так, что появляется необходимость рассчитать контрольную сумму файла или же текстовой строки (так кстати в большинстве случаев реализовано хранение паролей пользователей в БД). Мне расчет контрольной суммы файла понадобился во время установки Astra Linux на виртуальную машину.
Хотелось сравнить хэш-сумму файла написанной на сайте и хэш-сумму файла который я скачал. По итогу они конечно же не сошлись, но и да ладно.
Мы будем рассчитывать контрольную сумму на примере файла. И для примера, собственно, создадим этот файл. Я буду использовать для примера картинку, а именно логотип своего канала.
Это файл изображения формата jpg и размером 126418 байт.
Считать мы будем суммы по следующим пяти алгоритмам:
- MD5: Этот алгоритм создает хеш-сумму длиной 128 бит.
- SHA1: Алгоритм хеширования Secure Hash Algorithm 1 создает хеш-сумму длиной 160 бит.
- SHA256: Алгоритм хеширования Secure Hash Algorithm 256 создает хеш-сумму длиной 256 бит.
- SHA384: Алгоритм хеширования Secure Hash Algorithm 384 создает хеш-сумму длиной 384 бит.
- SHA512: Алгоритм хеширования Secure Hash Algorithm 512 создает хеш-сумму длиной 512 бит.
Все результаты я буду записывать в Excel табличку:
Итак, начнем с Windows.
Расчет контрольной суммы на Windows
Для расчета контрольной суммы файла на Windows воспользуемся оболочкой командной строки под названием PowerShell. Далее воспользуемся встроенной командой Get-FileHash. Вот как можно это сделать:
Get-FileHash -Path "путь_к_файлу" -Algorithm "алгоритм_хеширования"
Замените "путь_к_файлу" на путь к файлу, для которого нужно рассчитать контрольную сумму, и "алгоритм_хеширования" на алгоритм хеширования, например, SHA256, SHA1, MD5
По итогу, рассчитав сумму по алгоритму MD5, у меня получится следующий результат.
Записываю полученный результат в табличку и рассчитываю подобным образом суммы по остальным алгоритмам. Получился такой результат
Так же на Windows есть и другой способ рассчитать контрольную сумму файла. Это с помощью встроенной утилиты Certutil.exe, предназначенной для работы с сертификатами, но помимо основного функционала связанного с управлением сертификатами, включая их установку, удаление, просмотр, а также выполнение различных операций, связанных с криптографией, она также может и рассчитывать контрольные суммы файлов. Вот пример её использования в том же PowerShell:
certutil.exe -hashfile "путь_к_файлу" "алгоритм_хеширования"
Итак, с Windows разобрались, переходим к Astra Linux.
Расчет контрольной суммы на Linux (Astra Linux)
Расчет контрольной суммы на Astra Linux выполняется сразу в свойствах файла, это видно на скриншоте. В Astra Linux доступен даже расчет контрольной суммы по отечественному алгоритму ГОСТ Р 34.11-2012, который является приемником весьма старого алгоритма хэширования ГОСТ Р 34.11-94. Но мы считаем суммы по международным и самым распространенным алгоритмам хэширования. Про отечественные как-нибудь потом.
Этот функционал предоставляет графическая оболочка Fly, которая идет в Astra Linux, как это говориться, из коробки. Весьма удобный инструмент, но хотелось бы попробовать через мою любимую консоль. В этом нам помогут следующие утилиты, такие как md5sum, sha1sum, sha256sum, и другие, в зависимости от того, какой алгоритм хеширования вам необходим.
Для расчета хэш-суммы по алгоритму MD5:
md5sum имя_файла
Для расчета контрольных сумм по остальным алгоритмам команды будут аналогичны:
Для SHA1
sha1sum имя_файла
Для SHA256
sha256sum имя_файла
Для SHA384
sha384sum имя_файла
Для SHA512
sha512sum имя_файла
Рассчитав все суммы записываем результаты в таблицу
Итак, суммы на Linux посчитали, теперь переходим на MacOS.
Расчет контрольной суммы на MacOS
Для расчета контрольной суммы на операционной системе MacOS с помощью встроенных утилит нам снова понадобиться мой любимый терминал и утилита shasum. Итак, условия те же - картинка.
Теперь перейдем в терминал и рассчитаем необходимые нам контрольные суммы для картинки.
shasum /путь/к/вашему/файлу
С помощью утилиты shasum рассчитывается сумма по алгоритму SHA1.
Сумма по этому алгоритму у нас есть. Но как получить остальные? Тут всё достаточно просто, нужно в атрибуте к утилите указать необходимый нам алгоритм хэширования. Например, давайте теперь рассчитаем контрольную сумму по алгоритму SHA256, для этого необходимо дописать атрибут в котором указывается алгоритм хэширования (-a 256):
shasum -a 256 /путь/к/вашему/файлу
Получим следующий результат.
Аналогичным способом рассчитываем суммы по другим алгоритмам:
Для SHA384
shasum -a 384 /путь/к/вашему/файлу
Для SHA512
shasum -a 512 /путь/к/вашему/файлу
Что же касаемо алгоритма MD5, то расчет по нему производиться с помощью другой встроенной утилиты, она так и называется md5.
Теперь полученные результаты добавим в результирующую таблицу и сравним все суммы. Проверим равенство ячеек с помощью простой функции Excel:
=И(B2=C2, C2=D2)
Получим следующий результат
В принципе этого и стоило ожидать :). На всех трех операционных системах алгоритмы хэширования работают одинаково и ими удобно пользоваться не прибегая к установке стороннего ПО.
Спасибо за прочтение! Всем удачных расчетов!