fixmint
RU

MD5, SHA-1 или SHA-256: какой хэш выбрать для загрузки файлов

Автор: · · обновлено 8 ноября 2026 г. · Чтение: 4 мин

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

Генератор хэшейФайл из загрузки совпадает?Сделать бесплатно

Что делает хэш и чего он не делает

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

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

Четыре распространённых варианта

АлгоритмДлина результатаДля чего использовать
MD5128 бит, 32 шестнадцатеричных символаТолько для поиска случайных повреждений
SHA-1160 бит, 40 шестнадцатеричных символовПроверки для совместимости; для безопасности не используйте
SHA-256256 бит, 64 шестнадцатеричных символаОбычный выбор для загрузок
SHA-512512 бит, 128 шестнадцатеричных символовТо же семейство, но с более длинным результатом

Почему MD5 и SHA-1 недостаточно надёжны

Коллизия — это ситуация, когда два разных входных набора дают один и тот же хэш. Коллизии MD5 известны с 2004 года. В 2017 году исследователи опубликовали практическую коллизию SHA-1: два разных PDF-файла с одинаковым хэшем.

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

На момент написания практических коллизий SHA-256 не известно, поэтому именно он обычно и выбирается. Шаги проверки описаны в руководстве по проверке SHA-256.

Как выбрать нужный вариант

  1. Если издатель предлагает SHA-256 или SHA-512, используйте его, а MD5 и SHA-1 для проверки безопасности не берите.
  2. Если предложены только MD5 или SHA-1, всё равно проверьте файл с помощью генератора хэшей. Он по-прежнему поймает повреждённую или неполную загрузку. Совпадение означает «не повреждён», а не «подлинный».
  3. Если хэш не опубликован, таким способом целостность не проверить. Скачивайте файл с официальной страницы по HTTPS, а если проект публикует подписанные файлы с контрольными суммами, проверьте подпись.

Генератор хэшей сразу вычисляет MD5, SHA-1, SHA-256, SHA-384 и SHA-512 для текста или одного файла. Файл обрабатывается в вашем браузере, и ничего никуда не загружается. Вставьте хэш издателя в поле Expected hash. Перед сравнением инструмент убирает пробелы и не учитывает регистр, поэтому хэш, напечатанный заглавными буквами или группами, всё равно совпадёт. Очень большие файлы могут перегрузить память браузера; в таком случае используйте утилиту командной строки, например sha256sum в Linux или shasum -a 256 на Mac.

Что говорит совпадение

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

Контрольной сумме нужен доверенный источник

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

Хэши для паролей устроены иначе

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

Особые случаи

  • Регистр. Шестнадцатеричные буквы от A до F одинаковы в любом регистре, поэтому сравнивайте, не обращая внимания на заглавные буквы.
  • Обрезанные хэши. Некоторые сайты печатают только начало хэша. Короткое совпадение мало что доказывает, поэтому сравнивайте всё значение целиком.
  • Несколько файлов. Некоторые проекты публикуют один файл с контрольными суммами для всего релиза. Найдите строку с точным именем файла, потому что совпадение со строкой другого файла ничего не доказывает.

Переведено с помощью ИИ с Английский оригинал.

Комментарии

    Комментариев пока нет. Будьте первым.

    Ваша оценка (необязательно)

    Ваша почта никогда не показывается и не сохраняется.

    Обложка книги «How to Remain Valuable When Intelligence Becomes Cheap»How to Remain Valuable When Intelligence Becomes Cheap

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

    $3.84Купить на GumroadНа английском