Вверх

Что такое контрольная сумма (и почему это должно вас волновать)?

4 февраля 2021 |

Что такое контрольная сумма (и почему это должно вас волновать)?

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

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

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

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

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

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

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

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

Компьютеры используют методы контрольной суммы для проверки данных на наличие проблем в фоновом режиме, но вы также можете сделать это самостоятельно. Например, дистрибутивы 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: pathtofile.iso -Algorithm MD5 Get-FileHash C: pathtofile.iso -Algorithm SHA1

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

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

Что такое контрольная сумма (и почему это должно вас волновать)?


Напишите пару строк: