Как найти хэш файла

Обновлено: 21.11.2024

Криптографический хеш – это строка фиксированного размера (или текст), которая используется в качестве идентификатора/отпечатка некоторых данных. Они особенно полезны при определении целостности файлов после их передачи по каналу связи. Хеши даже используются некоторыми процессами уровня ОС для своей работы. Командный процессор ОС Windows (cmd.exe) предоставляет пользователю возможность вычислять хэши файлов/каталогов с помощью служебной команды с именем Certutil. В этой статье мы узнаем о вычислении хэшей в командной строке (cmd).

Описание команды:
Команда Certutil в основном используется для работы с цифровыми сертификатами, а не с хэшами. Возможность хэширования файлов обусловлена ​​наличием в нем ключа -hashfile.

Где certutil – это команда, а -hashfile – предоставленный ей переключатель.
Синтаксис:
Переключатель -hashfile занимает два аргументы. Во-первых, путь к файлу, в котором нас интересует получение хеша. А затем алгоритм хеширования, который нас интересует.

Создание синтаксиса:

Где Путь_к_файлуобязательный (должен быть указан) аргумент, а HashAlgo — необязательный аргумент (если не указан, по умолчанию используется SHA1). Если предоставляется HashAlgo, он должен быть либо из семейства криптографических хэшей SHA (Secure Hash Algorithms), либо из MD (Message Digest). Некоторые из алгоритмов хеширования, разрешенных в команде: MD4, MD5, SHA1, SHA256, SHA512.

Использование команды:
Чтобы продемонстрировать использование команды, мы запустим команду в файле. Файл нашего примера будет расположен по адресу «C:\Users\Public\spars.txt» .

Это содержит некоторые текстовые данные. Таким образом, чтобы получить MD5-хэш (Message Digest 5) файла, нам нужно выполнить команду.

Команда после выполнения выдаст подобный результат.

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

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

Синтаксис

Описание

Командлет Get-FileHash вычисляет хеш-значение для файла с помощью указанного хеш-алгоритма. Хэш-значение — это уникальное значение, соответствующее содержимому файла. Вместо того, чтобы идентифицировать содержимое файла по его имени, расширению или другому обозначению, хэш присваивает содержимому файла уникальное значение. Имена файлов и расширения могут быть изменены без изменения содержимого файла и без изменения хеш-значения. Точно так же содержимое файла можно изменить без изменения имени или расширения. Однако изменение даже одного символа в содержимом файла изменяет хеш-значение файла.

Хеш-значения предназначены для обеспечения криптографически надежной проверки того, что содержимое файла не было изменено. Хотя некоторые алгоритмы хэширования, в том числе MD5 и SHA1, больше не считаются защищенными от атак, цель безопасного алгоритма хеширования состоит в том, чтобы сделать невозможным изменение содержимого файла — либо случайно, либо в результате злонамеренной или несанкционированной попытки — - и поддерживать то же значение хеш-функции. Вы также можете использовать хэш-значения, чтобы определить, имеют ли два разных файла точно такое же содержимое. Если хеш-значения двух файлов идентичны, содержимое файлов также идентично.

По умолчанию командлет Get-FileHash использует алгоритм SHA256, хотя можно использовать любой алгоритм хэширования, поддерживаемый целевой операционной системой.

Примеры

Пример 1. Вычисление хеш-значения для файла

В этом примере командлет Get-FileHash используется для вычисления хэш-значения для файла /etc/apt/sources.list. Используемый алгоритм хэширования — SHA256 по умолчанию. Выходные данные передаются командлету Format-List для форматирования выходных данных в виде списка.

Пример 2. Вычисление хеш-значения для файла ISO

В этом примере используется командлет Get-FileHash и алгоритм SHA384 для вычисления хеш-значения для файла ISO, загруженного администратором из Интернета. Выходные данные передаются командлету Format-List для форматирования выходных данных в виде списка.

Пример 3. Вычисление хеш-значения потока

Пример 4. Вычисление хэша строки

PowerShell не предоставляет командлет для вычисления хэша строки. Однако вы можете записать строку в поток и использовать параметр InputStream командлета Get-FileHash для получения хеш-значения.

Параметры

Если значение не указано или параметр опущен, значением по умолчанию является SHA256.

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

Тип:String
Допустимые значения:SHA1, SHA256, SHA384, SHA512, MD5
Позиция:1
Значение по умолчанию: Нет
Принимать ввод конвейера:False
Допускать подстановочные знаки:Ложь

Указывает входной поток.

Тип:Поток
Позиция:0
Значение по умолчанию:Нет
Принять ввод конвейера:False
Допускать подстановочные знаки:False

Указывает путь к файлу. В отличие от параметра Path, значение параметра LiteralPath используется точно так, как оно введено. Никакие символы не интерпретируются как подстановочные знаки. Если путь содержит escape-символы, заключите путь в одинарные кавычки. Одинарные кавычки указывают PowerShell не интерпретировать символы как управляющие последовательности.

Тип:String [ ]
Псевдонимы:PSPath, LP
Позиция:0
Значение по умолчанию:Нет< /td>
Принимать ввод конвейера:True
Допускать подстановочные знаки: Ложь

Указывает путь к одному или нескольким файлам в виде массива. Подстановочные знаки разрешены.

Тип:Строка [ ]
Позиция:0
Значение по умолчанию:Нет
Принять ввод конвейера:True< /td>
Допускать подстановочные знаки:True

Входные данные

Командлету Get-FileHash можно передать строку, содержащую путь к одному или нескольким файлам.

Результаты

Microsoft.Powershell.Utility.FileHash

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

HashOnClick очень прост в использовании, и его можно использовать через пункт контекстного меню в проводнике Windows, через страницу свойств файла или через командную строку. Сначала мы объясним самый простой способ его использования: через проводник Windows.

Краткое объяснение (Проводник Windows)

В проводнике Windows выберите файлы, для которых вы хотите рассчитать хеш-значения, нажмите правую кнопку мыши и выберите «Рассчитать хэш-значение», затем выберите соответствующий тип хэш-функции во всплывающем подменю (например, MD5). После этого значения будут рассчитаны и отображены. Затем вы можете скопировать данные в буфер обмена для вставки в другое приложение или сохранить результаты в файл.

Подробное объяснение (Проводник Windows)

Проводник Windows позволяет просматривать и выбирать любой файл или папку на локальном компьютере, а также отображать файлы и папки на подключенных устройствах, таких как CD, DVD, внешние USB-накопители, карты памяти и т. д.

Откройте проводник Windows, щелкнув правой кнопкой мыши логотип Windows (ранее кнопка "Пуск"). Появится всплывающее меню. Выберите проводник :

В качестве альтернативы вы можете быстро открыть проводник Windows, нажав клавиши Windows и E:

Теперь откроется проводник Windows, показывающий ваши папки, файлы, подключенные диски и т. д.

В приведенном ниже примере показано, как проводник Windows использовался для просмотра папки «Документы». На правой панели текстовый файл под названием «Пример» был щелкнут правой кнопкой мыши, и во всплывающем меню был выбран пункт меню «Вычислить значение хэша». Также появляется подменю, показывающее типы хеш-значений, которые можно рассчитать. В этом примере мы выбираем MD5:

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

Хеш-значение MD5 – это строка из 32 символов, которая идентифицирует содержимое файла. Если два файла имеют одинаковое содержимое, весьма вероятно, что они будут иметь одинаковое значение хэш-функции MD5. Вот результирующее окно для значения хеша MD5:

В качестве альтернативы вы можете выбрать хеш-значение SHA-1 в подменю "Рассчитать хеш-значение":

Хеш-значение SHA-1 – это строка из 40 символов, которая идентифицирует содержимое файла. Если два файла имеют одинаковое содержимое, то гарантируется, что они будут иметь одинаковое значение хеш-функции SHA-1. Вот результат для хеш-значения SHA-1:

Теперь вы можете сохранить значение в файл. При нажатии кнопки «Сохранить все в файл» откроется окно типа «Проводник». Используя левые кнопки навигации и раскрывающееся меню, перейдите к месту, где вы хотите сохранить хеш-значение, и нажмите Сохранить :

Вы также можете скопировать хеш-значение в буфер обмена с помощью кнопки "Копировать все в буфер обмена":

Нажмите кнопку OK, чтобы выйти из HashOnClick.

Используя расширение Property Sheet, вы можете одновременно вычислять несколько хеш-значений для одного файла. Для этого откройте проводник Windows, щелкните файл правой кнопкой мыши и выберите «Свойства» во всплывающем меню. Затем перейдите на вкладку HashOnClick:

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

Во-первых, обратите внимание, что использование HashOnClick через командную строку предназначено для более опытных пользователей. Вам не нужно использовать командную строку для вычисления хеш-значений. Использование проводника Windows является предпочтительным методом (подробности см. в разделе выше).

Крис Хоффман

Крис Хоффман
Главный редактор

Крис Хоффман – главный редактор How-To Geek. Он писал о технологиях более десяти лет и два года был обозревателем PCWorld. Крис писал для The New York Times и Reader's Digest, давал интервью в качестве эксперта по технологиям на телевизионных станциях, таких как NBC 6 в Майами, и освещал свою работу в новостных агентствах, таких как Би-би-си. С 2011 года Крис написал более 2000 статей, которые были прочитаны почти миллиард раз — и это только здесь, в How-To Geek. Подробнее.

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

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

Хэши — это продукты криптографических алгоритмов, предназначенные для создания строки символов. Часто эти строки имеют фиксированную длину, независимо от размера входных данных. Взгляните на приведенную выше диаграмму, и вы увидите, что и «Лиса», и «Рыжая лиса перепрыгивает через синюю собаку» дают одинаковую длину вывода.

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

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

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

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

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

Как сравнить хеш-функции в любой операционной системе

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

Окна

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

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

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

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

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

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

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

macOS

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

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

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

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

Линукс

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

Некоторые хэши криптографически подписаны для еще большей безопасности

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

Проверка криптографической подписи — более сложный процесс. Подробные инструкции см. в нашем руководстве по проверке ISO-образов Linux на отсутствие подделок.

  • › Как защитить свой Mac от программ-вымогателей
  • › Как работает фильтр SmartScreen в Windows 8 и 10.
  • › Что нового в Debian 11 «Яблочко»
  • › Что такое контрольная сумма (и зачем она вам)?
  • › Как убедиться, что резервные копии Time Machine вашего Mac работают правильно
  • › Руководство для начинающих по сценариям оболочки 4: условия и операторы «если-то»
  • › Сколько оперативной памяти требуется вашему ПК?
  • › Matter — это долгожданный стандарт умного дома

Читайте также: