Разное

Контрольная сумма файла: Как узнать контрольную сумму файла в Windows

25.11.1974

Содержание

Контрольная сумма: что это и почему это важно

Сегодня в вашем лексиконе появится важная новая фраза: контрольная сумма. Это инструмент опытных разработчиков, админов и хакеров, и сегодня он станет вашим.

Представьте ситуацию: вы приходите в магазин за наушниками. Находите нужные на витрине, пробуете их, вам всё нравится. Вы просите продавца принести такие же со склада, в упаковке.

Продавец приносит коробку, и вы понимаете, что вас хотят обмануть. Упаковку явно до этого вскрывали, в комплекте не все провода и накладки, плёночки сняты. Этими наушниками явно пользовались до вас.

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

В мире информации происходит почти то же самое: товар на складе — это какие-то данные, а список комплектности товара — это контрольная сумма, которая показывает, изменялись эти данные или нет.

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

Как это работает

На самом деле именно контрольной суммы уже нет — это название нам досталось с тех времён, когда для проверки точности передачи данных использовали 7 бит вместо 8. Восьмой бит был контрольным, и в нём находилась сумма первых семи бит без учёта старших разрядов. Когда получателю приходила очередная порция данных, он складывал 7 бит и сравнивал сумму с восьмым. Если они совпадали, значит, данные, скорее всего, передались верно. Тогда линии связи были не такими надёжными, как сейчас, и если что-то передавалось неправильно, такие данные нужно было отправить заново. С тех пор и пошло понятие контрольной суммы.

Сейчас сумму уже никто не использует, а вместо этого работают специальные программы:

  1. Берут данные, для которых нужно составить контрольную сумму.
  2. По специальному алгоритму эти данные превращаются в одну строку из символов.
  3. Эту строку текста прикладывают к исходному файлу и говорят — ребята, вот контрольная сумма (то есть строка). Если вы не уверены, что всё скачали правильно, проверьте.
  4. Те, кто скачал исходный файл, запускают программу проверки контрольных сумм и говорят ей — вот файл, а вот его контрольная сумма, проверь, пожалуйста, всё ли тут правильно.
  5. Программа сама составляет контрольную сумму по тому же алгоритму и сравнивает с вашей.
  6. Если контрольные суммы совпадают — всё отлично, данные в порядке, можно пользоваться. Если нет — программа выведет сообщение, что суммы отличаются. Это значит, что во время скачивания возникла ошибка или кто-то специально подменил исходные данные, чтобы навредить вам.

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

Самый простой вариант организовать контрольную сумму — использовать хеши, например, MD5. Мы уже говорили про хеши в статье про Фейсбук и утерянные пароли, но MD5 — многогранная вещь, и в своё время его все использовали для создания контрольных сумм.

Но примерно с 2006 года все стали переходить на другие алгоритмы (CRC32, SHA-1, SHA-2 или MD5crypt). Дело в том, что уже есть методы, которые за приемлемое время могут взломать MD5-хеш и сделать другой файл с тем же размером и почти таким же содержимым, что и ваш. Это значит, что злоумышленник может подделать данные таким образом, что проверка контрольной суммы пройдёт успешно и вы будете думать, что всё в порядке.

Почему это важно

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

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

Чаще всего контрольную сумму используют разработчики ПО, которые выкладывают на своих страницах официальный софт и драйвера. Они говорят: ребята, вот файл, а вот его контрольная сумма. Если качаете у нас — проверьте, без ошибок ли вы скачали. А если качаете не у нас — сравните их контрольную сумму с нашей, вдруг они вам под видом драйвера хотят подсунуть какой-то вирус.

Что такое контрольная сумма файла

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

Объяснение контрольных сумм

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

Алгоритм использует криптографическую хеш-функцию, которая принимает входные данные и создает строку (последовательность цифр и букв) фиксированной длины. Входным файлом может быть небольшой файл размером 1 МБ или большой файл размером 4 ГБ, но в любом случае Вы получите контрольную сумму такой же длины. Контрольные суммы также могут называться «хешами».

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

Когда контрольные суммы полезны

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

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

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

В чем разница между хешами MD5, SHA-1 и SHA-256

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

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

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

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

Различные алгоритмы контрольной суммы дают разные результаты. Файл будет иметь разные контрольные суммы MD5, SHA-1 и SHA–256. Если Вам известна только сумма MD5 исходного файла, Вы должны вычислить сумму MD5 своей копии, чтобы проверить, совпадает ли она.

Как рассчитать контрольную сумму

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

В Windows команда PowerShell Get-FileHash вычисляет контрольную сумму файла. Чтобы использовать ее, сначала откройте PowerShell. В Windows 10 щелкните правой кнопкой мыши кнопку «Пуск» и выберите «Windows PowerShell». Вы также можете запустить его, выполнив поиск в меню «Пуск» по запросу «PowerShell» и щелкнув ярлык «Windows PowerShell».

Get-FileHash входит в состав Windows 10. Но в Windows 7 Вам необходимо установить обновление PowerShell 4.0.

В командной строке введите Get-FileHash и нажмите клавишу пробела.

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

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

Если Вам нужен другой тип контрольной суммы, добавьте соответствующую опцию -Algorithm в конец команды, например:

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

Сравните рассчитанную контрольную сумму с исходной. Не нужно смотреть слишком внимательно, так как будет большая разница в контрольной сумме, даже если в базовом файле будет только крошечная разница.

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

Контрольные суммы файла | BeginPC.ru

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

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

Мы не будем углубляться в техническую реализацию, достаточно знать, что применяя определенный алгоритм высчитывает некое значение однозначно описывающее данный файл. Оно всегда одинаковое для одних и тех же данных и называется контрольной суммой или хешем. Хотя самих алгоритмов хеширования существует множество, вот некоторые из наиболее часто встречающихся: MD5, CRC32, SHA-1, SHA256, BTIH.

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

Проверка контрольных сумм файлов в Windows

В операционной системе Windows существует множество способов выполнить данную проверку, поэтому рассмотрим только несколько из них, а вы уже сами выберите наиболее удобный вам.

Проверка хеша файла в командной строке Windows

Начнем с самого простого способа не требующего установки дополнительного программного обеспечения. Начиная с Windows 7 есть возможность рассчитать контрольную сумму в командной строке используя встроенную утилиту certutil среди прочего умеющую вычислять хеш файлов. Просто запускаете командную строку и вводите следующую команду:

certutil -hashfile "путь к файлу" [HashAlgorithm]

где [HashAlgorithm] может принимать одно из следующих значений: MD2, MD4, MD5, SHA1, SHA256, SHA384, SHA512. Таким образом, чтобы узнать контрольную сумму файла Win10_1511_1_Russian_x32.iso расположенного в корне диска D:\ по алгоритму SHA-1 команда будет выглядеть так:

certutil —hashfile "D:\Win10_1511_1_Russian_x32.iso" SHA1

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

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

Проверка хеша в программе MD5 File Checker

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

Через некоторое время программа выдаст вердикт. Основной минус программы, что она умеет использовать только алгоритм MD5, что иногда бывает недостаточно. Скачать MD5 File Checker можно здесь.

Расчет контрольных сумм в программе HashTab

Здесь уже используется немного другой подход, причем есть версия как для Windows так и для Mac OS. В Windows программа является расширением проводника, а на Mac является плагином для Finder. Покажем работу программы на примере Windows.

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

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

Представленных вариантов вполне достаточно, для проверки целостности файлов в Windows. Единственное пожалуй упомянем, что Total Commander так же умеет вычислять CRC-суммы, соответствующие возможности находятся в меню «Файл».

Проверка хешей в Linux

Здесь так же можно воспользоваться консолью. В случае алгоритма MD5 достаточно выполнив команду.

md5sum "путь к файлу"

Для хеш-сумм по алгоритму SHA-1 команда выглядит немного иначе.

sha1sum "путь к файлу"

В случае необходимости рассчитать циклическую контрольную сумму (CRC) используется команда

cksum "путь к файлу"

Кто не хочет связываться с консолью, может поставить программу Gtkhash с графическим интерфейсом и проверять целостность файлов в ней. Для установки программы выполнить в консоли:

sudo apt-get install gtkhash

Напоследок расскажем о том, как можно убедиться, что скачанный с торрента или доставшейся из другого ненадежного источника дистрибутив Windows оригинальный и его не изменял кто-либо. Для этого идем на сайт Майкрософт где подписчики MSDN могут скачивать ее продукты. Находим нужный нам образ, обращая внимание на версию, дату, разрядность и язык. Когда нужный продукт будет найден, нажимаем на «Сведения» рядом с ним.

В нижней части раскрывшейся области будет указана хеш сумма рассчитанная по алгоритму SHA1. Не смотрите на название вашего файла, его могли переименовать, главное это содержимое. Кроме того не стоит тратить время на проверки контрольных сумм образа, если это сборка, репак и подобное народное творчество, а не образ MSDN.

Что такое контрольная сумма файла и с чем ее едят

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

Что это?

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

Вот, например, контрольная сумма дистрибутива Windows 8, который нашелся у меня на жестком диске, которую выдает алгоритм SHA1:

B0DF41EA9B2F47A205F0C088BD6105B0F3C67D6B

И зачем оно нужно?

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

Как узнать контрольную сумму?

Средствами проводника Windows, к сожалению, узнать контрольную сумму MD5 или SHA1 невозможно. Однако существует целый ряд утилит различной сложности, которые позволяют это сделать. Мне больше всего нравится HashTab (ссылка на сайт программы) . Программка совсем небольшая, и ставится как дополнение к проводнику. После установки HashTab, для того, чтобы узнать контрольные суммы файла, просто щелкните по нему правой кнопкой мыши, и выберите «Свойства». Обратите внимание, что в привычном нам окне проводника появилась новая вкладка — «Хеш-суммы файлов». Для больших файлов может потребоваться некоторое время на подсчет сумм.

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

Поиск файлов по контрольным суммам

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

На сриншоте ниже я ввел в Google контрольную сумму OEM-дистрибутива Windows 8.1, как видите, результат на лицо.

Поделиться ссылкой:

Что такое контрольная сумма?

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

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

Существуют различные алгоритмы хеширования для создания контрольных сумм. Скажем, программы-архиваторы используют так называемый циклический избыточный код (CRC). Он позволяет удостовериться, что распаковка файла из архива прошла без проблем, a полученный файл идентичен изначальному. Программа BitTorrent использует алгоритм SHA-1, чтобы проверять целостность загружаемых данных. Для проверки целостности скачанных файлов и поиска дубликатов файлов обычно используют алгоритм MD5.

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

Контрольная сумма определяется при помощи специальных программ. Одна из самых распространенных программ для проверки контрольных сумм файлов — HashTab. Эта программа бесплатна, ее очень просто скачать и установить. Ее даже не надо запускать — она интегрируется в контекстное меню операционной системы. Кстати, среди поддерживаемых программой языков есть и русский. Есть версии программы для Windows (XP, Vista, Seven) и Mac OS X.

Итак, вы скачали и установили программу, что дальше? Откройте в Проводнике или любом другом файловом менеджере папку с файлом, контрольную сумму которого вы хотите проверить. Кликните по файлу правой кнопкой мыши, выберите в контекстом меню пункт Свойства. В открывшемся окне перейдите на вкладку Хеш-суммы файлов и подождите: программе понадобится некоторое время, чтобы подсчитать контрольные суммы.

HashTab определяет значение хеша по алгоритмам Adler32, CRC32, MD2, MD4, MD5, RIPEMD-128, RIPEMD-256, RIPEMD-320, SHA-1, SHA-256, SHA-384, SHA-512, Tiger и Whirlpool. По умолчанию контрольная сумма рассчитывается по трем самым популярным алгоритмам, CRC32, MD5 и SHA-1. При желании вы можете выбрать другие алгоритмы, нажав на ссылку Настройки под окошком со значением хеша. Также программа HashTab позволяет сравнить значение хеша двух файлов на компьютере.

Еще одна бесплатная программа для проверки хеша файла — MX MD5 Calculator. В ней контрольная сумма рассчитывается по алгоритму MD5. В принципе, для «бытовых» целей разнообразие алгоритмов вам ни к чему, MD5 вполне должно хватить. Программа работает на операционной системе Windows (XP, Vista, Seven). Правда, в отличие от HashTab, она не работает на 64-битных версиях ОС. К сожалению, русского языка в ней нет, но даже в английской версии разобраться не так уж сложно.

Скачав и установив программу, запустите ее. Нажмите кнопку Browse возле строки File 1 и выберите файл, контрольная сумма которого вас интересует. Выбрав файл, нажмите кнопку Calculate (она находится прямо под кнопкой Browse). Подсчет хеш-суммы займет какое-то время. Оно зависит от конфигурации и загруженности вашего компьютера. Чтобы подсчет шел быстрее, желательно закрыть все остальные приложения. После окончания подсчета в строке MD5 появится искомая контрольная сумма. Чтобы сравнить хеш двух файлов, можно выбрать по файлу в строках File 1 и File 2.

Как эффективно генерировать и проверять контрольные суммы файлов?

Этот ответ является комбинацией ответов @ lechlukasz и @ db48x , а также включает в себя некоторые замечания, высказанные в комментариях, а также некоторые из моих собственных мыслей.

Простой путь вперед — это комбинированный подход файловой системы и отдельных метаданных.

Используя файловую систему, которая выполняет хеширование и проверку данных на лету, например, ZFS или Btrfs (учтите, что, несмотря на значительные успехи, Btrfs не считается готовым к использованию в настоящее время), вы можете быть разумно Убедитесь, что если данные могут быть считаны с диска без ошибок операционной системы, тогда считанные данные были записаны на диск так, как это предусмотрено файловой системой. При выполнении периодических операций «очистки» все данные считываются и проверяются в соответствии с представлением файловой системы о том, каким оно должно быть.

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

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

С современным оборудованием и тем, что практично для хранения больших объемов данных (вращающиеся жесткие диски в отличие от твердотельных дисков / твердотельных накопителей), даже сложные алгоритмы хеширования, такие как SHA1, будут в значительной степени связаны с вводом / выводом, то есть скорость при котором данные хэшируются будут зависеть от скорости чтения системы хранения, а не от способности процессора компьютера вычислять хэш. Я провел эксперимент с запуском процесса хеширования MD5 в пользовательском пространстве на примерно 150 ГБ данных на том, что в 2012 году было потребительским ПК среднего уровня, и он завершился после того, как диск работал в основном без перерыва в течение примерно 40 минут. Если вы увеличите эти цифры в 100 раз, вы получите хеш MD5 из коллекции 15 ТБ примерно за три дня на том же оборудовании. Добавляя скорость передачи чтения (которая может быть легко достигнута, например,RAID 0, например, является чередованием без избыточности, обычно используется для достижения более высокой производительности чтения / записи, возможно, в сочетании с RAID 1, формирующим RAID 10 ), время до завершения может быть уменьшено для того же объема данных.

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

Как узнать хэш файла в Windows PowerShell

&nbsp windows | для начинающих

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

На сайтах загрузок часто бывает представлена контрольная сумма, вычисленная по алгоритмам MD5, SHA256 и другим, позволяющая сверить загруженный файл с файлом, выложенным разработчиком. Для вычисления контрольных сумм файлов можно использовать сторонние программы, но есть способ сделать это и стандартными средствами Windows 10, 8 и Windows 7 (требуется версия PowerShell 4.0 и выше) — с помощью PowerShell или командной строки, что и будет продемонстрировано в инструкции.

Получение контрольной суммы файла средствами Windows

Для начала потребуется запустить Windows PowerShell: проще всего использовать поиск в панели задач Windows 10 или меню Пуск Windows 7 для этого.

Команда, позволяющая вычислить хэш для файла в PowerShell — Get-FileHash, а чтобы использовать ее для вычисления контрольной суммы достаточно ввести ее со следующими параметрами (в примере вычисляется хэш для образа ISO Windows 10 из папки VM на диске C):

Get-FileHash C:\VM\Win10_1607_Russian_x64.iso| Format-List

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

Get-FileHash C:\VM\Win10_1607_Russian_x64.iso -Algorithm MD5 | Format-List

При этом поддерживаются следующие значение для алгоритмов вычисления контрольной суммы в Windows PowerShell

  • SHA256 (по умолчанию)
  • MD5
  • SHA1
  • SHA384
  • SHA512
  • MACTripleDES
  • RIPEMD160

Подробное описание синтаксиса команды Get-FileHash доступно также на официальном сайте https://technet.microsoft.com/en-us/library/dn520872(v=wps.650).aspx

Получение хэша файла в командной строке с помощью CertUtil

В Windows присутствует встроенная утилита CertUtil для работы с сертификатами, которая, помимо прочего, умеет высчитывать контрольную сумму файлов по алгоритмам:

  • MD2, MD4, MD5
  • SHA1, SHA256, SHA384, SHA512

Для использования утилиты достаточно запустить командную строку Windows 10, 8 или Windows 7 и ввести команду в формате:

certutil -hashfile путь_к_файлу алгоритм

Пример получения хэша MD5 для файла показан на скриншоте ниже.

Дополнительно: на случай, если вам требуются сторонние программы для вычисления хэшей файлов в Windows, можно обратить внимание на SlavaSoft HashCalc.

Если же требуется вычислить контрольную сумму в Windows XP или в Windows 7 без PowerShell 4 (и возможности его установить), вы можете использовать утилиту командной строки Microsoft File Checksum Integrity Verifier, доступную для загрузки на официальном сайте https://www.microsoft.com/en-us/download/details.aspx?id=11533 (формат команды для использования утилиты: fciv.exe путь_к_файлу — результат будет MD5. Также можно вычислить хэш SHA1: fciv.exe -sha1 путь_к_файлу)

remontka.pro в Телеграм | Другие способы подписки

А вдруг и это будет интересно:

Как работать с контрольными суммами файлов в Linux

В этой статье описывается, как сгенерировать контрольные суммы файлов MD5 и SHA и проверить целостность файлов в Linux.

О контрольных суммах

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

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

«SHA» — это общий термин для всего семейства алгоритмов хеширования.Два наиболее часто используемых алгоритма SHA:

  • SHA-1
  • SHA-2: это семейство включает несколько функций хеширования, имена которых указывают разрядность хеш-значения (например, SHA-224, SHA-256, SHA-384 и SHA-512).
Генерация контрольных сумм в Linux

Все серверы хостинга A2 работают под управлением Linux и поэтому включают программы командной строки для генерации контрольных сумм MD5 и SHA.

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

  1. Войдите в свою учетную запись, используя SSH.
  2. В командной строке введите одну из следующих команд, заменив filename именем файла, для которого вы хотите сгенерировать контрольную сумму:
    • Чтобы сгенерировать контрольную сумму MD5, введите:
       md5sum filename> md5sums.txt 
    • Чтобы сгенерировать контрольную сумму SHA, введите имя команды для алгоритма хеширования, который вы хотите использовать. Например, чтобы сгенерировать контрольную сумму SHA-256, используйте команду sha256sum . Чтобы сгенерировать контрольную сумму SHA-512, вы должны ввести следующую команду:

       sha512sum filename> sha512sums.txt 

    Файл md5sums.txt (или sha512sums.txt ) теперь содержит список файлов и соответствующие контрольные суммы.

    Вы также можете сгенерировать несколько контрольных сумм одновременно. Например, чтобы сгенерировать контрольные суммы MD5 для всех файлов .zip в текущем каталоге, введите следующую команду:

     md5sum * .zip> md5sums.txt 

    Аналогичным образом, чтобы сгенерировать контрольные суммы MD5 для всех файлов в текущем каталоге и всех каталогов ниже него, введите следующую команду:

     находка.-type f -exec md5sum {}> md5sums.txt \; 

    Чтобы вместо этого сгенерировать контрольные суммы SHA, замените md5sum соответствующей командой SHA.

Проверка контрольных сумм в Linux

Все серверы хостинга A2 работают под управлением Linux и поэтому включают программы командной строки для проверки контрольных сумм MD5 и SHA.

Чтобы проверить контрольные суммы файлов, выполните следующие действия:

  1. Войдите в свою учетную запись, используя SSH.
  2. В командной строке введите одну из следующих команд на основе алгоритма (MD5 или SHA), который использовался для генерации контрольных сумм.В этих примерах используются имена файлов md5sums.txt и sha512sums.txt . Если вы сохранили контрольные суммы в другом файле, используйте вместо этого это имя файла.
    • Чтобы проверить контрольные суммы MD5, введите:
       md5sum -c md5sums.txt 
    • Чтобы проверить контрольные суммы SHA, введите имя команды для алгоритма хеширования, который вы хотите использовать. Например, чтобы проверить контрольную сумму SHA-256, используйте команду sha256sum . Чтобы проверить контрольную сумму SHA-512, введите следующую команду:

       sha512sum -c sha512sums.txt 

    Каждая совпадающая контрольная сумма отображает OK , а несовпадающая контрольная сумма отображает FAILED .

    Если вы проверяете много файлов, несовпадающие результаты могут потеряться среди всех результатов прокрутки. Чтобы отображать только несовпадающие контрольные суммы, используйте параметр -quiet. Например:

     sha512sum --quiet -c sha512sums.txt 
Прочие операционные системы

Вы можете генерировать и проверять контрольные суммы в других операционных системах:

  • На компьютер под управлением Microsoft Windows вы можете установить одну из множества доступных для загрузки программ, которые генерируют и проверяют контрольные суммы.
  • Для компьютера под управлением Apple macOS вы можете использовать программы md5 и shasum в командной строке.
Дополнительная информация

Как создавать контрольные суммы в Windows (встроенные и сторонние инструменты)

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

Продолжайте читать, потому что вы бесплатно узнаете несколько способов вычисления контрольной суммы файла в Windows! Научитесь использовать встроенные инструменты Windows и сторонние утилиты для создания значения контрольной суммы файла.

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

Предварительные требования

Поскольку это статья с практическими рекомендациями, вы будете следовать подходу обучения на практике.Некоторые инструменты, используемые в этой статье, встроены или предоставлены корпорацией Майкрософт; некоторые также из сторонних источников. Чтобы продолжить, убедитесь, что у вас есть как минимум компьютер под управлением Windows 10 или как минимум Windows Server 2012.

Предварительные условия для каждого метода генерации контрольных сумм будут предоставлены по мере необходимости.

Средство проверки целостности контрольной суммы файла (FCIV)

Средство проверки целостности контрольной суммы файла (FCIV) Microsoft изначально было представлено в Windows Server 2012 R2 и доступно для всех будущих версий.

Предположим, вы установили инструмент FCIV в C: \ Tools \ fciv.exe. Выполните приведенную ниже команду в командной строке или командной строке PowerShell, чтобы сгенерировать контрольную сумму MD5 для файла VSCodeUserSetup-x64-1.52.1.exe . Если ваш файл находится в другом месте, измените его соответствующим образом.

  C: \ Tools \ fciv.exe C: \ downloads \ VSCodeUserSetup-x64-1.52.1.exe
  

После выполнения команды FCIV вы увидите результат, аналогичный показанному на снимке экрана ниже.Как видите, команда fciv.exe по умолчанию сгенерировала хеш MD5 для данного файла.

Вычисление контрольной суммы MD5 в Windows с использованием fciv.exe .

FCIV может генерировать только хэши файлов MD5 или SHA-1.

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

  C: \ Tools \ fciv.exe C: \ downloads \ VSCodeUserSetup-x64-1.52.1.exe -sha1
  
Создание контрольной суммы SHA-1 с использованием fciv.exe .

Молодец! Вы создали значения контрольной суммы MD5 и SHA-1. Почему бы не сгенерировать одновременно хеш-значения MD5 и SHA-1? Вместо использования опции sha1 используйте и .

  C: \ Tools \ fciv.exe C: \ downloads \ VSCodeUserSetup-x64-1.52.1.exe - оба
  

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

Вычисление контрольной суммы MD5 и SHA-1 с использованием fciv.exe .

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

На этом этапе вы создали хеш-значения MD5 и SHA-1 с помощью инструмента fciv.exe . Что ты думаешь на данный момент? Я знаю, что вы готовы изучить следующий инструмент.

Использование Certutil

Certutil — еще один отличный инструмент для генерации контрольной суммы файла в Windows. Точное имя программы — certutil.exe , которое доступно «из коробки».

Основная цель certutil.exe — это сертификатов .Но certutil.exe имеет функцию создания контрольной суммы файла в Windows с использованием следующих алгоритмов хеширования:

  • MD2
  • MD4
  • MD5
  • SHA1
  • SHA256
  • SHA384
  • SHA512

Давайте посмотрим, как это работает.

Запустите PowerShell или командную строку, чтобы начать вычисление контрольных сумм файлов, используя синтаксис, показанный ниже.

  certutil.exe -hashfile [Путь к файлу] [Алгоритм хеширования]
  

В приведенном ниже примере certutil.exe создает хэш SHA-256 файла C: \ downloads \ VSCodeUserSetup-x64-1.52.1.exe , как показано на скриншоте ниже.

  certutil.exe -hashfile "C: \ downloads \ VSCodeUserSetup-x64-1.52.1.exe" SHA256
  
Использование certutil.exe для создания контрольной суммы файла.

Теперь вы знаете, как использовать certutil.exe для создания контрольной суммы файла. Чтобы попрактиковаться, попробуйте сгенерировать хеш-значение файла, используя все другие доступные алгоритмы.Читайте дальше, чтобы узнать, как использовать Get-FileHash и PowerShell для создания хэша файла!

Знаете ли вы, что алгоритмы хеширования, такие как SHA-256, также используются при создании сертификатов SSL?

Связано: Как настроить OpenSSL в Windows 10 (PowerShell)

Использование PowerShell

Командлет Get-FileHash

Вы читали и использовали инструменты командной строки для создания контрольных сумм файлов в Windows с самого начала этой статьи.Еще один инструмент командной строки, который вы узнаете, как использовать, — это командлет PowerShell Get-FileHash .

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

  Get-FileHash -Path [путь к файлу] -Algorithm [алгоритм хеширования]
  

Доступные алгоритмы хеширования для Get-FileHash перечислены ниже.Вы заметите, что выбор алгоритмов хеширования отличается от того, что предлагают FCIV и CertUtil. Кроме того, более не включаются более старые и более уязвимые алгоритмы, такие как алгоритмы MD1 и MD4.

  • SHA1
  • SHA256
  • SHA384
  • SHA512
  • MACTripleDES
  • MD5
  • RIPEMD160

Приведенная ниже команда вычисляет хеш-значение файла VSCodeUserSetup-x648-1.52.1.exe алгоритм.Скопируйте и запустите приведенный ниже код в PowerShell для тестирования, при необходимости изменив путь к файлу.

  Get-FileHash -Path C: \ downloads \ VSCodeUserSetup-x64-1.52.1.exe -Алгоритм sha256
  

Как видно на снимке экрана ниже, команда Get-FileHash вычислила хэш файла SHA-256, как указано в параметре -Algorithm sha256 .

Использование Get-FileHash для вычисления контрольной суммы SHA-256 файла.

Если вы хотите вычислить контрольную сумму файла с использованием других алгоритмов, вам нужно всего лишь изменить значение параметра Algorithm .Как вы думаете, теперь вы можете создать контрольную сумму SHA-512 файла с помощью Get-FileHash ? Бьюсь об заклад, ты сможешь!

Создание хэшей для нескольких файлов одновременно

С помощью Get-FileHash можно одновременно сгенерировать контрольную сумму нескольких файлов. В приведенном ниже примере кода хранится список путей к файлам в переменной $ files . Затем команда Get-FileHash использует переменную $ files для вычисления контрольной суммы SHA-256 для каждого файла, как показано на снимке экрана ниже.

  $ files = @ (
    'C: \ downloads \ PowerShell-7.1.0-win-x64.msi',
    'C: \ downloads \ VSCodeUserSetup-x64-1.52.1.exe'
)
Get-FileHash -Path $ files -Алгоритм sha256  
Использование Get-FileHash для вычисления хеш-значений для каждого файла, хранящегося в массиве $ files .

Что делать, если вам нужно сгенерировать хеш для папки, полной файлов? Вместо того, чтобы вручную создавать массив $ files , используйте командлет Get-ChildItem для получения списка файлов в заданной папке.

В приведенной ниже команде командлет Get-ChildItem извлекает список файлов в папке c: \ downloads . Затем результат передается через конвейер PowerShell в командлет Get-FileHash , который, в свою очередь, вычисляет хеш-значение SHA-256 каждого файла.

  (Get-ChildItem C: \ downloads) .Fullname | Get-FileHash -Алгоритм sha256
  

В зависимости от размеров файла время, необходимое для создания контрольной суммы, может варьироваться. В этом примере команде потребовалось около двадцати секунд для вычисления контрольной суммы файла ISO размером 8 ГБ.Результат должен выглядеть примерно так, как показано на скриншоте ниже.

Использование Get-ChildItem и Get-FileHash для вычисления хеш-значений для каждого файла в папке.

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

7-застежка-молния

Вы устали от использования командной строки и ищете графический инструмент для создания контрольной суммы файла в Windows? 7-zip — популярный и бесплатный инструмент для сжатия файлов, способный генерировать хеш-значение файла.

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

  1. Щелкните файл правой кнопкой мыши, чтобы сгенерировать контрольную сумму.
  2. Выберите пункт меню CRC SHA , чтобы вывести список доступных алгоритмов хеширования.
  3. Наконец, щелкните алгоритм хеширования, который вы хотите использовать.

В приведенном ниже примере звездочка (*) отображает хеш-значение файла с использованием всех доступных алгоритмов.Как это легко?

Использование контекстного меню 7-Zip для вычисления контрольной суммы файла в Windows.

Затем узнайте, как использовать инструмент HashMyFiles для генерации контрольных сумм нескольких файлов в качестве альтернативы 7-Zip!

HashMyFiles

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

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

Использование HashMyFiles для получения хэша нескольких файлов с помощью перетаскивания

Более того, HashMyFiles может экспортировать значения хэша или контрольной суммы в отчет HTML или файл с разделителями табуляции. Эта функция экспорта полезна, когда вы хотите сохранить запись значений контрольной суммы файла.

Следующие шаги

Из этой статьи вы узнали, что существует несколько способов создания контрольной суммы файла в Windows.Microsoft имеет встроенные инструменты командной строки, такие как certutil.exe и Get-FileHash .

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

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

Как проверить контрольную сумму MD5 (или SHA) в Windows 10

Хотите убедиться, что файл не закалялся? Скачивание установочных файлов, например, для Windows? Узнайте здесь , как проверить контрольную сумму MD5 в Windows 10 (или SHA-1 и SHA-2).

Во-первых, 100¼ летие

В том, что стало известно как «Белый город», бледное неоклассическое великолепие приглашало гостей в массивные, но непостоянные павильоны в парке Джексон в Чикаго, чтобы отпраздновать 400-летие высадки Христофора Колумба в Новом Свете — в 1893 году.

Это был особый алгоритм, благодаря которому 1893 год стал годом 4-го столетия 1492 года, и требуется специальный алгоритм, чтобы суммировать файл любой длины в несколько битов. Встречайте контрольную сумму:

Как проверить контрольную сумму MD5 в Windows 10

На Mac? Как проверить контрольную сумму MD5 (или SHA) на Mac

Необходимое время: 3 минуты.

Чтобы проверить контрольную сумму MD5 или SHA в Windows с помощью certutil:

  1. Откройте командную строку Windows.

    Сделайте это быстро : нажмите Windows R , введите cmd и нажмите Введите .
    Альтернатива : Вы также можете открыть командную строку или Windows PowerShell из меню Start , конечно.

  2. Перейдите в папку, содержащую файл, чью контрольную сумму MD5 вы хотите проверить и проверить.

    Команда : введите cd , а затем укажите путь к папке.
    Совет : Вы можете перетащить папку из проводника Windows, чтобы вставить путь.

  3. Введите certutil -hashfile <файл> MD5 .

    <файл> : замените <файл> именем файла.
    Совет : Вы можете использовать клавишу Tab , чтобы Windows завершила имя файла.
    Пример : Введите certutil -hashfile Example.txt MD5 , чтобы получить хэш MD5 для файла Example.txt.

  4. Нажмите Введите .

    Другие алгоритмы хеширования : Дополнительные алгоритмы хеширования (включая SHA-1) см. Ниже.

  5. Сравните полученную контрольную сумму с ожидаемой.

Как проверить контрольные суммы с помощью SHA1 и другой функции хеширования в Windows 10

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

  1. Выполните все шаги, указанные выше, за одним исключением:
  2. Замените «MD5» на желаемую функцию хеширования из следующей таблицы.
MD5 SHA1 fc9421a01f0a605b7f99e11a78a41984e50c6fac SHA256 SHA384
Команда Функция хеширования Выход
MD2 Алгоритм дайджеста сообщения MD2 32 цифры
bf37869296b43da56329 90bb алгоритм сообщения 905b1b43da5639 90bb5
32
цифры c0e01d37a2041634870aef33b646e3af
MD5 Message-Digest Algorithm
32 цифр a5d0173a59d8b5728c655af1d45c803a
SHA1 хэш-алгоритм безопасного 1 (160 бит) 40 цифр
ША-2 256-бит Secure Hash Algorithm 64
цифры c2397243964401a5aaec496993de6683ca414862164f6803cc839cbb1dfcb161
ША-2 384-битный SECUR е алгоритм хеширования 96 цифр
37409aedd9519aae62c45652a83e5c3046e88eb6d9cc7115ab69efff45b842ecb0fc446786c7edd060f84d4ab2c3541a
SHA512 SHA-2 512-бит безопасный алгоритм хеширования 128 цифр
177bb9d9f90f3c4da812d5d0e18f32191f59749bbc3e37fc009767cd23b1b40efec5b46943f6a41c81c8adbc67347b262b0f3fa65ab55cae7ef2a6552e9f8fac

Как проверить контрольную сумму MD5 на Windows 10: FAQ

Может ли certutil генерировать хэши RIPEMD?

№Certutil поддерживает вышеперечисленные функции хеширования.

Для других алгоритмов вы можете обратиться к таким утилитам, как HashMe или, например, hashed.

(Как проверить контрольную сумму MD5 (или SHA), протестированную в Windows 10 версии 21h2; обновлено в августе 2021 г.)

Криптография

— Какой алгоритм хеширования я должен использовать для безопасной проверки контрольной суммы файла?

Выбор алгоритма хеширования

Используйте SHA-256 или SHA-512: любой из двух «основных» членов семейства SHA-2. SHA-2 является преемником SHA-1 и считается безопасным.Это хэш, который нужно выбирать, если у вас нет веской причины выбрать иное. В вашем случае выбор между SHA-256 и SHA-512 безразличен. Существует SHA-3, но он еще не очень широко поддерживается и не более безопасен (или менее безопасен), чем SHA-2, это просто другой дизайн.

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

Точнее, для обоих этих хэшей можно найти коллизии: можно найти два документа D1 и D2 такие, что MD5 (D1) = MD5 (D2) (или SHA-1 (D1) = SHA-1 (D2)), и так, что D1 и D2 заканчиваются маленьким битом, который необходимо вычислить, и, необязательно, общим выбранным суффиксом. Бит, который необходимо вычислить, будет выглядеть как мусор, но его можно скрыть в комментарии, в изображении, которое смещено за пределы страницы и т. Д. Создание таких коллизий тривиально на ПК для MD5 и выполнимо, но дорого для SHA- 1 (если вы не хотите, чтобы он был для двух файлов PDF, и в этом случае исследователи уже потратили деньги на расчет, чтобы найти один, и опубликовали его).

В вашем сценарии вы в основном не заботитесь о столкновениях, потому что вы будете производить D1. Вы не собираетесь делать этот кусок посередине. Однако есть риск, что кто-то может обманом заставить вас ввести этот бит, например, предоставив изображение для включения в документ. Добиться столкновения таким способом было бы довольно сложно, но в принципе это выполнимо.

Поскольку использование MD5 сопряжено с риском и нулевым преимуществом по сравнению с использованием SHA-256, используйте SHA-256.

Что делать с хешем

С неразрывным криптографическим хешем, таким как SHA-256, вы знаете, что если два файла имеют одинаковый хеш, то они идентичны.И наоборот, это означает, что если два файла имеют разные хеши, то они разные. Это означает, что если вы храните надежную копию хэша (например, распечатываете ее и сохраняете или заверяете у нотариуса), то позже вы можете сказать: «Да, этот файл, который вы мне показываете, является тем же файлом» или « нет, это другой файл, который вы мне показываете ».

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

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

Пример того, для чего хэш не подходит: кто-то другой утверждает, что он является автором документа.Вы говорите «нет, послушайте, я знаю его хеш, это 1234…». Это не помогает: любой может вычислить хеш.

Пример того, для чего полезен хеш при правильном использовании: кто-то другой утверждает, что он только что написал документ. Вы говорите: «Нет, послушайте, я нотариально заверил хэш 6 в прошлом году, так что вы не могли записать его на прошлой неделе».

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

человек посередине — Какой смысл указывать контрольные суммы файлов для проверки загрузок?

Похоже, вы предполагаете, что все меры безопасности по своей сути предотвращают атаки какого-либо типа.

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

Это важно, потому что усложнение атаки по своей сути снижает вероятность того, что она действительно произойдет. Если атака слишком сложна или слишком дорога для злоумышленника по сравнению с предполагаемой ценностью успеха, он просто не будет пытаться атаковать (или сдастся на полпути).

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

  • Атаки MitM становятся немного сложнее.Вы должны перехватить и изменить два (или, возможно, больше) запроса вместо одного, чтобы ваша атака оставалась незамеченной, пока не стало слишком поздно.
  • Если хеширование не выполняется при доступе, атаки на сервер должны заменять более одного файла, или может даже потребоваться замена файлов в двух совершенно разных сетевых местах (я видел сайты, которые хранят хэши в по этой причине отдельное место от файлов).

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

  • Пользователь может быть уверен, что загруженный им файл — это то, что они должны были получить в случае отсутствия атаки.IOW, он защищает их от получения поврежденного файла из-за таких вещей, как повреждение данных в состоянии покоя на сервере или плохая память на сервере или их локальной системе.
  • Он обеспечивает разумную степень уверенности в том, что промежуточные протоколы не искажали данные. TCP как бы защищает от этого (но 2-байтовая контрольная сумма для потенциально 1k + байтов приведет к множеству потенциальных конфликтов), но не все использует TCP, и пользователь может даже не получить файл с исходного сервера (см. Саймон Ответ Рихтера для примера этого).

Итак, в целом, вы получаете несколько ограниченных преимуществ безопасности и некоторую ограниченную страховку от пары проблем, которые могут возникнуть (если вы посмотрите на старые сообщения usenet и BB с файлами, вы иногда увидите контрольные суммы, указанные в сообщении по тем же причинам, не связанным с безопасностью). Напротив, это практически ничего не стоит оператору сервера и не создает никаких новых проблем для пользователя, поэтому, хотя он и не добавляет много безопасности, довольно легко увидеть, что это стоит делать, потому что накладные расходы практически отсутствуют.

хеш — Почему необходимо сопоставить контрольную сумму загрузки с другим файлом, предоставленным тем же сервером?

предисловие

Вопрос спрашивает «необходимость» / «зачем это нужно» делать проверку контрольной суммы. Хотя или, может быть, из-за того, что я предполагаю контекст безопасности, я немного обеспокоен. Я предполагаю, что вы хотели сказать что-то вроде «каков был бы выигрыш в безопасности от использования хэша / контрольных сумм, передаваемых открытым текстом того же происхождения»?

Нет, это не очень полезно для безопасности

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

Причина (не столько связанная с безопасностью) «возможное повреждение данных во время передачи данных» также уже была указана.

Я не хочу провоцировать этот новый дополнительный пункт здесь как «очень безопасную функцию», но если вы воспринимаете атаку в свете ее усилий и затрат.Может случиться так, что злоумышленник сможет подделать файл размером 600 МБ (что требует некоторого времени для загрузки) в один или два момента времени. Файл хэша / контрольной суммы (который, как хорошо выразился @Thomas Pornin, , концентрирует требований безопасности) может быть загружен быстрее (всего несколько байтов). Его легко можно скачать несколько раз (в разное время). Без каких-либо больших усилий с вашей стороны (поскольку файл такой маленький), но потребует от злоумышленника как-то постоянно быть начеку.Тот факт, что хэш концентрирует внимание безопасности, может сместить «баланс усилий» на вашу сторону. Вы не стали бы загружать весь файл (скажем, 600 МБ * .iso) 3–4 раза, просто чтобы проверить, остается ли он таким же (т.е. нет очевидных признаков подделки данных), но вы можете рассмотреть возможность загрузки (очень небольшие расходы), хеш из нескольких источников в разные даты. Усилия (благодаря хешу) для вас невелики. С другой стороны, злоумышленник все еще должен присутствовать (даже для нескольких байтов), иначе неподходящий хэш / контрольная сумма может указывать на некоторое несоответствие.

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

относительно множественных источников : Приведенные вами примеры можно увидеть как

комбо. позволяя вам загружать ISO через HTTP (экономя вычислительную мощность при шифровании передачи), а затем загружать HASH / контрольную сумму через HTTPS, чтобы в некоторой степени снизить вероятность атаки.

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

Введение в хеширование и контрольные суммы в Linux

Скорее всего, вы видели ссылки на хеши или контрольные суммы при загрузке программного обеспечения из Интернета. Часто программное обеспечение будет отображаться, и тогда рядом со ссылкой стоит контрольная сумма.Контрольная сумма может быть обозначена как MD5, SHA или другим подобным именем. Вот пример одной из моих любимых старых игр 1990-х годов под названием Nethack:

Если вы загрузили Nethack, вы можете проверить файл, сравнив результат хеширования md5sum с результатом, отображаемым на веб-сайте.

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

[Читателям также понравилось: Начало работы с GPG (GnuPG)]

Цели криптографии

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

Криптография на самом деле преследует три цели:

  • Конфиденциальность — для предотвращения чтения содержимого файла неавторизованными пользователями
  • Подлинность — для подтверждения происхождения файла
  • Целостность — чтобы доказать, что файл не изменился неожиданно

Это третья концепция, целостность , которая нас здесь интересует.В этом контексте целостность означает доказательство того, что данные не изменились неожиданно. Доказательство честности полезно во многих сценариях:

  • Загрузки из Интернета, такие как дистрибутивы Linux, программное обеспечение или файлы данных
  • Передача файлов по сети через NFS, SSH или другие протоколы
  • Проверка установки программного обеспечения
  • Сравнение сохраненного значения, такого как пароль, со значением, введенным пользователем
  • Резервные копии, которые сравнивают два файла, чтобы узнать, изменились ли они

Что такое хеширование?

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

Хеширование — это односторонний процесс. Результат хеширования нельзя отменить, чтобы открыть исходные данные. Контрольная сумма — это строка вывода заданного размера. Технически это означает, что хеширование не является шифрованием, потому что шифрование предназначено для обратного (дешифрования).

Какую хэш-криптографию вы можете использовать с Linux?

Дайджест сообщения и алгоритм безопасного хеширования

В Linux вы, вероятно, будете взаимодействовать с одним из двух методов хеширования:

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

Дайджест сообщения
и алгоритм безопасного хеширования

В чем разница между алгоритмами дайджеста сообщения и безопасного хеширования? Разница заключается в используемой математике, но они достигают схожих целей. Системные администраторы могут предпочесть одно другому, но в большинстве случаев они работают одинаково.Однако они не взаимозаменяемы. Хэш, сгенерированный с помощью MD5 на одном конце соединения, бесполезен, если на другом конце используется SHA256. С обеих сторон должен использоваться один и тот же метод хеширования.

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

Где вы найдете хеширование в Linux?

Linux использует хеши во многих местах и ​​ситуациях.Контрольные суммы могут быть созданы пользователем вручную. Вы узнаете, как именно это сделать, позже в статье. Кроме того, возможности хеширования включены в / etc / shadow , rsync и другие утилиты.

Например, пароли, хранящиеся в файле / etc / shadow , на самом деле являются хэшами. Когда вы входите в систему Linux, процесс аутентификации сравнивает сохраненное хеш-значение с хешированной версией введенного вами пароля. Если две контрольные суммы идентичны, то исходный пароль и то, что вы ввели, идентичны.Другими словами, вы ввели правильный пароль. Однако это определяется без фактического дешифрования сохраненного пароля в вашей системе. Проверьте первые два символа второго поля своей учетной записи в / etc / shadow . Если два символа — $ 1 , ваш пароль зашифрован с помощью MD5. Если символы $ 5 , ваш пароль зашифрован с помощью SHA256. Если значение $ 6 , используется SHA512. SHA512 используется на моей виртуальной машине Fedora 33, как показано ниже:

Хеш пароля находится во втором поле файла / etc / shadow.Первые два символа поля указывают на используемый тип хэша. В данном случае 6 долларов или SHA512.

Как вручную сгенерировать контрольные суммы

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

Сначала откройте ваш любимый текстовый редактор и создайте файл с именем original.txt со строкой текста, которая гласит: Исходная информация.

  [Дэймон @ localhost ~] $ vim original.txt
[Дэймон @ localhost ~] $ cat original.txt
Исходная информация.
[damon @ localhost ~] $  

Затем прогоните файл с помощью алгоритма хеширования. Я пока буду использовать MD5. Команда: md5sum . Вот пример:

  [Дэймон @ localhost ~] $ md5sum original.txt
80bffb4ca7cc62662d951326714a71be original.txt
[damon @ localhost ~] $  

Обратите внимание на результирующее значение контрольной суммы. Это значение достаточно велико, с ним сложно работать.Давайте сохраним это значение для будущего использования, перенаправив его в файл:

  [Дэймон @ localhost ~] $ md5sum original.txt> hashes.txt
[Дэймон @ localhost ~] $ cat hashes.txt
80bffb4ca7cc62662d951326714a71be original.txt
[damon @ localhost ~] $  

На этом этапе у вас есть исходный файл. Скопируйте этот файл в каталог / tmp с именем duplicate.txt . Скопируйте файл с помощью следующей команды (обязательно копируйте, а не перемещайте):

  [damon @ localhost ~] $ cp оригинал.txt /tmp/duplicate.txt
[damon @ localhost ~] $  

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

  [Дэймон @ localhost ~] $ md5sum /tmp/duplicate.txt
80bffb4ca7cc62662d951326714a71be /tmp/duplicate.txt
[damon @ localhost ~] $  

Затем добавьте результат хеширования в наш файл hashes.txt и затем сравните их. Будьте очень осторожны при использовании здесь оператора перенаправления добавления >> , потому что > перезапишет хэш-значение оригинала .txt файл.

Выполните следующую команду:

  [Дэймон @ localhost ~] $ md5sum /tmp/duplicate.txt >> hashes.txt
[Дэймон @ localhost ~] $ cat hashes.txt
80bffb4ca7cc62662d951326714a71be original.txt
80bffb4ca7cc62662d951326714a71be /tmp/duplicate.txt
[damon @ localhost ~] $  

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

Затем смоделируйте изменение. Введите следующую команду, чтобы изменить файл / tmp / duplicate.txt , а затем повторно запустите команду md5sum с оператором добавления >> :

  [Damon @ localhost ~] $ имя хоста >> /tmp/duplicate.txt
[Дэймон @ localhost ~] $ md5sum /tmp/duplicate.txt >> hashes.txt
[damon @ localhost ~] $  

Вы знаете, что файл duplicate.txt больше не идентичен файлу original.txt , но давайте докажем это:

  [damon @ localhost ~] $ cat хеши.текст
80bffb4ca7cc62662d951326714a71be original.txt
80bffb4ca7cc62662d951326714a71be /tmp/duplicate.txt
1f59bbdc4e80240e0159f09ecfe3954d /tmp/duplicate.txt
[damon @ localhost ~] $  

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

В приведенном выше примере вы вручную сравнили хеш-значения, отображая их с cat . Вы можете использовать опцию --check , чтобы md5sum провел сравнение за нас.Я включил оба метода ниже:

  [Дэймон @ localhost ~] $ cat hashes.txt
80bffb4ca7cc62662d951326714a71be original.txt
80bffb4ca7cc62662d951326714a71be /tmp/duplicate.txt
1f59bbdc4e80240e0159f09ecfe3954d /tmp/duplicate.txt

[Damon @ localhost ~] $ md5sum --check hashes.txt
original.txt: ОК
/tmp/duplicate.txt: НЕ ИСПОЛЬЗУЕТСЯ
/tmp/duplicate.txt: ОК
md5sum: ПРЕДУПРЕЖДЕНИЕ: 1 вычисленная контрольная сумма НЕ совпадает
[damon @ localhost ~] $  

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

Примечание : Если вы переносите файлы между Linux, macOS и Windows, вы все равно можете использовать хеширование для проверки целостности файлов. Чтобы сгенерировать хеш-значение в macOS, запустите команду md5 . Для этого в Windows необходимо загрузить стороннюю программу. Лично я использую md5checker .Обязательно разбирайтесь в лицензировании этих утилит. Вы можете использовать командлет PowerShell get-filehash , в зависимости от установленной вами версии PowerShell.

[Бесплатный курс: технический обзор Red Hat Satellite. ]

Заключение

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

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *