Проверка хеша файла

Файл

Это можно сравнить с «проверкой ожиданий» ниже; алгоритм необходимо пересчитать.

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

Похожие

Что такое хеш файла?

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

Типичные применения: ① после загрузки сравнить официальный хеш, чтобы убедиться, что файл не подменён; ② управление версиями — Git / SVN используют SHA-1 для идентификации каждого коммита; ③ сравнение файлов — быстрая проверка, одинаковы ли два файла; ④ цифровая криминалистика — хеш файла служит доказательством целостности электронного доказательства.

Алгоритмы, поддерживаемые этим инструментом: MD5 (128 бит, уже не устойчив к коллизиям), SHA-1 (160 бит, для которого Google публично продемонстрировал коллизию), SHA-256 (256 бит, рекомендуемый стандарт) и семейство SHA-512 (512 бит / SHA-384 / SHA-512/256, более высокая безопасность). Хеш и шифрование — это разные вещи: хеш — односторонняя функция, по значению хеша нельзя восстановить содержимое файла.

Варианты использования

  • После загрузки программ, образов или прошивок сравните опубликованные на официальном сайте хеши MD5 / SHA-256, чтобы убедиться, что файл не содержит бэкдоров и не повреждён при передаче.
  • Перед отправкой большого файла коллеге заранее вычислите хеш, чтобы получатель после получения тоже посчитал его и сравнил — так вы убедитесь, что передача прошла без повреждений.
  • Создайте хеш SHA-256 для договоров, смет, сканов и других электронных доказательств и сохраните его в архиве как подтверждение того, что документ «не был изменён».
  • Сравните две версии одного и того же материала (до и после правок): сначала по хешу проверьте, действительно ли они идентичны, и только потом решайте, нужно ли распространять заново.
  • Проведите проверку согласованности между Git-репозиториями, резервными копиями или зеркалами: одно вычисление SHA-256 — и сразу видно, синхронизированы ли узлы.

Как использовать

  1. Нажмите на область загрузки и выберите любой локальный файл (за один раз обрабатывается один файл).
  2. Инструмент автоматически начнёт вычислять хеш, индикатор прогресса покажет процент в реальном времени — чем больше файл, тем дольше ожидание.
  3. Посмотрите результаты хеша справа, при необходимости переключите алгоритм, регистр или вариант из семейства SHA-512.
  4. Вставьте ожидаемое значение от официального источника или контрагента в поле «Ожидаемое значение» — инструмент сразу покажет, совпадает оно или нет.
  5. Нажмите кнопку «Копировать хеш», чтобы сохранить результат в буфер обмена, либо кнопку «Пересчитать», чтобы обновить значение для текущего файла.

Функции

  • Локальное вычисление для защиты приватности: все хеш-операции выполняются в вашем браузере, файл не загружается на сервер.
  • Четыре основных алгоритма: MD5, SHA-1, SHA-256 и SHA-512 — покрывают большинство сценариев проверки загрузок и цифровых отпечатков.
  • Тонкая настройка семейства SHA-512: можно переключаться между SHA-512, SHA-384 и SHA-512/256, чтобы сопоставлять ожидаемые значения разной длины.
  • Переключение верхнего / нижнего регистра в один клик: по умолчанию выводится нижний регистр, а для сравнения с инструментами Windows или официальными хешами в верхнем регистре достаточно поставить галочку.
  • Автоматическое сравнение с ожидаемым значением: вставьте официальный хеш в поле «Ожидаемое значение» — инструмент сразу покажет, совпадает он или нет.
  • Индикатор прогресса в реальном времени: большие файлы читаются и обрабатываются по частям, процент выполнения обновляется на лету — браузер не зависает.
  • Копирование хеша в один клик: после вычисления нажмите кнопку «Копировать», и результат окажется в буфере обмена — удобно для вставки в таблицы проверки или чаты.

Best Practices

Для проверки загруженных файлов в первую очередь используйте SHA-256

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

При сравнении игнорируйте регистр хеша

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

Хеш должен охватывать всё содержимое файла

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

Для электронных доказательств сохраняйте и хеш, и подпись

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

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

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

Если нужна проверка целостности с ключом — используйте HMAC

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

Часто задаваемые вопросы

Что выбрать — MD5 или SHA-256?

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

Считается ли ошибкой разный регистр хеша?

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

Почему мой хеш не совпадает с официально опубликованным?

Частые причины: ① файл повреждён при загрузке — скачайте заново; ② вы скачали версию, отличную от той, для которой опубликован хеш (проверьте номер версии, имя файла и номер тома); ③ вы посчитали хеш только для части архива; ④ официально опубликован другой алгоритм (например, вы использовали MD5, а на сайте — SHA-256).

Поддерживает ли инструмент SHA-224, BLAKE2, SM3?

Сейчас поддерживаются MD5, SHA-1, SHA-256 и семейство SHA-512 (SHA-512, SHA-384, SHA-512/256). SHA-224, BLAKE2, SM3 и другие алгоритмы пока не поддерживаются. Если они вам нужны, лучше воспользоваться локальными утилитами командной строки (openssl, sha256sum и т. п.).

Загружается ли файл на сервер? Это безопасно?

Нет. Инструмент использует crypto-js и считает хеш поблочно прямо в браузере: содержимое файла остаётся в памяти вашего устройства и никуда не отправляется. Можно спокойно проверять конфиденциальные документы, договоры и прошивки.

Можно ли посчитать хеш сразу нескольких файлов?

На текущей странице обрабатывается один файл за раз. Для пакетной проверки повторите операцию нужное число раз либо используйте локальные утилиты командной строки (certutil -hashfile в Windows, md5sum / shasum в macOS / Linux), которые выводят хеши многих файлов сразу.

Что выбрать — SHA-512 или SHA-384?

Если контрагент явно предоставил SHA-384 — выбирайте SHA-384. В остальных случаях, когда нужна «повышенная безопасность», по умолчанию берите SHA-512. SHA-512/256 даёт ту же длину выхода, что SHA-256 (64 символа), но использует внутреннюю функцию сжатия SHA-512 — это удобно, когда в системе ограничена длина хеша, но хочется более высокой стойкости к коллизиям.

Чем хеш отличается от цифровой подписи?

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

Не зависает ли браузер при подсчёте хеша больших файлов?

Инструмент читает файлы потоково блоками по 2 МБ, поэтому файлы от десятков до сотен мегабайт обычно обрабатываются нормально. На файлах размером в гигабайты и больше или на слабых устройствах расчёт заметно замедляется; если вам нужно проверять такие объёмы, удобнее использовать встроенные в систему утилиты или openssl.

Устранение неполадок

Хеш не совпадает с официально опубликованным

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

Вычисление большого файла идёт очень медленно

Инструмент считает хеш больших файлов потоково блоками по 2 МБ. Файлы до нескольких сотен мегабайт обычно обрабатываются за секунды. Для файлов размером в гигабайты и больше лучше использовать командную строку: certutil -hashfile <имя_файла> SHA256 в Windows, shasum -a 256 <имя_файла> в macOS / Linux.

После включения верхнего регистра хеш изменился

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

После переключения алгоритма результат не обновился

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

Глоссарий

MD5
Хеш-алгоритм с выходом 128 бит (32 шестнадцатеричных символа). Быстрый, но уже не устойчив к коллизиям (атака продемонстрирована командой Ван Сяоюнь в 2004 году). Подходит для цифровых отпечатков и дедупликации, но не для задач, критичных к безопасности.
SHA-1
Выход 160 бит (40 шестнадцатеричных символов). В 2017 году Google публично показала коллизию SHA-1, и основные браузеры и системы больше не рекомендуют его, хотя старая история Git по-прежнему на нём основана.
SHA-256
Член семейства SHA-2, выход 256 бит (64 шестнадцатеричных символа). Сегодня это рекомендуемый стандарт: его используют HTTPS, Bitcoin и новые репозитории Git.
SHA-512
Выход 512 бит (128 шестнадцатеричных символов), более устойчив к коллизиям, чем SHA-256, и немного быстрее на длинных файлах. Этот инструмент также поддерживает SHA-384 (96 символов) и SHA-512/256 (64 символа — той же длины, что SHA-256, но с внутренней функцией сжатия SHA-512).
Шестнадцатеричный формат (Hex)
Самая распространённая форма записи хеша: символы 0-9 и a-f, по 2 символа на байт. Инструмент поддерживает переключение между верхним и нижним регистром.
Коллизия (Collision)
Ситуация, когда два разных файла дают полностью одинаковое значение хеша. Устойчивость к коллизиям — ключевой показатель безопасности хеш-алгоритма; для MD5 и SHA-1 уже найдены практические коллизии.
Локальное вычисление
Все хеш-операции выполняются в памяти вашего браузера и устройства. Содержимое файла не отправляется на удалённый сервер, что подходит для проверки конфиденциальных документов.

Сравнение алгоритмов, поддерживаемых инструментом

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

АлгоритмДлина выходаБезопасностьТипичные сценарии
MD5128 бит / 32 символаСлабая (коллизии найдены)Локальная дедупликация, совместимость со старыми версиями
SHA-1160 бит / 40 символовСлабая (коллизии найдены)Совместимость с историей Git
SHA-256256 бит / 64 символаВысокаяПроверка загрузок, прошивок, доказательств (рекомендуется)
SHA-384384 бит / 96 символовВысокаяВысокие требования к безопасности, требования протоколов
SHA-512512 бит / 128 символовОчень высокаяВысокие требования к безопасности
SHA-512/256256 бит / 64 символаВысокаяНужна длина SHA-256, но ядро SHA-512

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

Для одного и того же файла оптимальный алгоритм зависит от сценария использования.

Сценарий использованияРекомендуемый алгоритмКлючевая ценность
Проверка загруженных программ / образов / прошивокSHA-256Универсально, широко поддерживается официальными источниками
Отпечаток коммитов GitSHA-1Совместимость с историей
Локальная дедупликация файловMD5Быстро, низкий риск
Цифровые доказательстваSHA-256 + подписьХеш плюс подпись — надёжнее для суда
Проверка идентичности при передачеSHA-256Обе стороны могут посчитать, легко сравнить
Требуется длина, заданная протоколомSHA-384 / SHA-512/256Соответствие ограничениям протокола

Authoritative References