Что такое контрольная сумма (и почему вы должны заботиться)?
Контрольная сумма - это последовательность цифр и букв, используемая для проверки данных на наличие ошибок. Если вы знаете контрольную сумму исходного файла, вы можете использовать утилиту контрольной суммы, чтобы подтвердить идентичность вашей копии.
Объясненные контрольные суммы
Чтобы создать контрольную сумму, вы запускаете программу, которая помещает этот файл в алгоритм. Типичные алгоритмы, используемые для этого, включают MD5, SHA-1, SHA-256 и SHA-512..
Алгоритм использует криптографическую хеш-функцию, которая принимает входные данные и создает строку (последовательность цифр и букв) фиксированной длины. Входной файл может быть небольшим 1 МБ файлом или большим 4 ГБ файлом, но в любом случае вы получите контрольную сумму той же длины. Контрольные суммы также могут называться «хэшами».
Небольшие изменения в файле приводят к очень разным контрольным суммам. Например, мы создали два разных текстовых файла, которые почти одинаковы, но у одного есть восклицательный знак, где у другого есть точка. Запустив на них встроенную утилиту проверки контрольных сумм Windows 10, мы увидели очень разные контрольные суммы. Разница в один символ в нижележащем файле приводит к совершенно другой контрольной сумме.
Когда контрольные суммы полезны
Вы можете использовать контрольные суммы для проверки файлов и других данных на наличие ошибок, возникающих во время передачи или хранения. Например, файл мог загружаться неправильно из-за проблем с сетью, или проблемы с жестким диском могли привести к повреждению файла на диске.
Если вы знаете контрольную сумму исходного файла, вы можете запустить для него контрольную сумму или утилиту хеширования. Если полученная контрольная сумма совпадает, вы знаете, что файл у вас идентичен.
Компьютеры используют методы в виде контрольной суммы для проверки данных на наличие проблем в фоновом режиме, но вы также можете сделать это самостоятельно. Например, дистрибутивы Linux часто предоставляют контрольные суммы, чтобы вы могли проверить правильность загрузки вашего Linux ISO, прежде чем записать его на диск или записать на 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
а затем нажмите клавишу пробела.
Введите путь к файлу, для которого вы хотите вычислить контрольную сумму. Или, чтобы упростить задачу, перетащите файл из окна проводника в окно PowerShell, чтобы автоматически заполнить его путь.
Нажмите Enter, чтобы запустить команду, и вы увидите хэш SHA-256 для файла. В зависимости от размера файла и скорости хранения на вашем компьютере, процесс может занять несколько секунд.
Если вам нужен другой тип контрольной суммы, добавьте соответствующий -Алгоритм
Опция до конца команды, вот так:
Get-FileHash C: \ path \ to \ file.iso -Алгоритм MD5
Get-FileHash C: \ path \ to \ file.iso -Алгоритм SHA1
Сравните рассчитанную контрольную сумму с исходной. Вам не нужно смотреть слишком близко, поскольку в контрольной сумме будет огромная разница, даже если в базовом файле есть только небольшая разница.
Если контрольная сумма совпадает, файлы идентичны. Если нет, то есть проблема - возможно, файл поврежден, или вы просто сравниваете два разных файла. Если вы скачали копию файла и его контрольная сумма не соответствует ожидаемой, попробуйте загрузить файл снова.