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

9f86d081884c7d659a2feaa0c55ad015...

Это не пароль и не случайный набор символов. Перед нами контрольная сумма — цифровой отпечаток файла.

Что делает хеш-функция

Хеш-функция получает данные любого размера и создаёт строку фиксированной длины.

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

  • корректно ли скачался файл;
  • не повредился ли архив;
  • совпадает ли копия с оригиналом;
  • не был ли файл заменён после публикации.

SHA-256 — один из самых распространённых современных алгоритмов для такой проверки.

Как выглядит проверка на практике

Представим, что разработчик опубликовал программу и указал рядом SHA-256:

Официальная сумма:
7a3f...91c2

После загрузки вы вычисляете SHA-256 своего файла.

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

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

Как проверить файл на AllBlog

Откройте Hash & Checksum Lab и выполните три шага:

  1. переключитесь в режим «Файл»;
  2. добавьте скачанный объект;
  3. выберите тот же алгоритм, который указан автором файла.

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

Файл читается локально в браузере и не загружается на сервер.

SHA-256, SHA-1 и CRC32 — в чём разница

SHA-256

Подходит для современной проверки целостности. Это хороший вариант по умолчанию, когда источник предлагает несколько алгоритмов.

SHA-1

До сих пор встречается в старых инструкциях и системах совместимости. Для новых задач лучше использовать SHA-256 или более современный вариант.

CRC32

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

Что такое HMAC

Обычный хеш вычисляется только из сообщения. HMAC дополнительно использует секретный ключ.

Он применяется, когда две стороны хотят подтвердить не только целостность данных, но и знание общего секрета. Например, HMAC встречается при проверке запросов API и webhook-уведомлений.

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

Хеширование не равно шифрованию

Хеш нельзя «расшифровать» обратно в исходный файл. Его задача — создать отпечаток для сравнения.

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

Также обычный SHA-256 не подходит для безопасного хранения пользовательских паролей. Для паролей используют специальные медленные алгоритмы с солью, например Argon2id или bcrypt.

Когда проверка особенно полезна

Контрольную сумму стоит сверять при загрузке:

  • образов операционных систем;
  • прошивок;
  • крупных архивов;
  • установщиков;
  • резервных копий;
  • файлов, полученных через ненадёжный канал.

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

Итог

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

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