Для чего нужны хэши файла MD5, SHA-1 и SHA-256 – как проверять хэш

Россия+7 (910) 990-43-11
Обновлено: 2024-01-02

Иногда Вы можете встретить упоминание MD5, SHA-1 или SHA-256 хэшей, отображаемых вместе с вашими, но, на самом деле, не знаете, что они означают. Эти, казалось бы, случайные строки текста позволяют Вам проверить, что файлы, которые вы загрузили, не были повреждены или подделаны.

Как используют хэши для проверки данных

Хэши являются результатом работы криптографических алгоритмов, и представляют собой строку символов. Часто эти строки имеют фиксированную длину, независимо от размера входных данных.

Пример хэширования символьной информации

Взгляните на диаграмму, и вы увидите, что хэш «Fox» и «The red fox jumps over the blue dog» имеет одинаковую длину. Теперь сравните второй пример на графике с третьим, четвертым и пятым. Вы увидите, что, несмотря на незначительные изменения во входных данных, хэши сильно отличаются друг от друга. Даже если кто-то изменит очень маленький фрагмент входных данных, хэш будет резко меняться.

MD5, SHA-1 и SHA-256 – это разные алгоритмы хэш-функции. Создатели программного обеспечения часто указывают хэш для загружаемых файлов.

Публикация разработчика хэшей загружаемых файлов

Таким образом, Вы можете загрузить файл, а затем сравнить опубликованный с рассчитанным для загруженного файла, чтобы подтвердить, что Вы получили оригинальный файл, и что он не был поврежден во время процесса загрузки или подделан злонамеренно.

Как мы видели выше, даже небольшое изменение в файле резко изменит хэш.

Они также могут быть полезны, если файл получен из неофициального источника, и вы хотите проверить, что это «законно». Допустим, у Вас есть Linux.iso-файл, который вы откуда-то получили, и вы хотите убедиться, что он оригинальный. Вы можете посмотреть хэш этого ISO-файла в интернете на веб-сайте дистрибутивов Linux. Затем рассчитать хэш-функцию на вашем компьютере и убедиться, что результат соответствует хэш-значению, которое вы ожидаете от него. Это подтверждает, что у вас тот же файл, который предлагается для загрузки на официальном веб-сайте дистрибутива Linux.

Сравнение хэша в любой операционной системе

Имея это в виду, давайте посмотрим, как проверить хэш файла, который вы загрузили, и сравнить его с тем, который должен быть. Вот методы для Windows, macOS и Linux. Хэши всегда будут идентичны, если вы используете одну и ту же функцию хэширования в одном файле. Не имеет значения, какую операционную систему Вы используете.

Хэш файла в Windows

Этот процесс возможен без какого-либо стороннего программного обеспечения на Windows, благодаря PowerShell.

Чтобы начать работу, откройте окно PowerShell, запустив ярлык Windows PowerShell из меню Пуск.

Выполните следующую команду, заменив "C:\path\to\file.iso" путём к любому файлу, для которого вы хотите просмотреть хэш:

Get-FileHash C:\path\to\file.iso

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

Расчет хэша загруженного файла с помощью PowerShell системы Windows

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

Выполните одну из следующих команд, чтобы задать другой алгоритм хэширования:

Get-FileHash C:\path\to\file.iso -Algorithm MD5

Get-FileHash C:\path\to\file.iso -Algorithm SHA1

Get-FileHash C:\path\to\file.iso -Algorithm SHA256

Get-FileHash C:\path\to\file.iso -Algorithm SHA384

Get-FileHash C:\path\to\file.iso -Algorithm SHA512

Get-FileHash C:\path\to\file.iso -Algorithm MACTripleDES

Get-FileHash C:\path\to\file.iso -Algorithm RIPEMD160

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

Хэш файла на macOS

macOS содержит команды для просмотра различных типов хэшей. Для доступа к ним запустите окно терминала. Вы найдете его в FinderПриложенияУтилитыТерминал.

Запуск терминала команд в macOS

Команда md5 показывает MD5-хэш файла:

md5 /path/to/file

Команда shasum показывает хэша SHA-1 по умолчанию. Это означает, что следующие команды идентичны:

shasum /path/to/file

shasum -a 1 /path/to/file

Чтобы отобразить хэш файла SHA-256, выполните следующую команду:

shasum -a 256 /path/to/file

Хэш файла в Linux

В Linux обратитесь к терминалу и выполните одну из следующих команд для просмотра хэша файла, в зависимости от типа хэша, который вы хотите посмотреть:

md5sum /path/to/file

sha1sum /path/to/file

sha256sum /path/to/file

Хэши с криптографической подписью

Хотя хэши могут помочь вам подтвердить, что файл не был подделан, здесь остаётся возможность для атаки. Злоумышленник может получить контроль веб-сайтом с дистрибутивом Linux и изменить хэш-коды, которые отображаются на нём, или злоумышленник может изменять веб-страницу во время передачи информации, если доступ происходит по протоколу http, вместо зашифрованного протокола https.

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


4.7/12