Калькулятор контрольной суммы файла SHA-1
Вычисляйте контрольную сумму SHA-1 любого файла локально, в том числе большого, и сравнивайте её с опубликованным хешем, чтобы проверить загрузку. Бесплатно и приватно.
Файл ещё не выбран. Контрольная сумма появится сразу после выбора файла.
Файл читается частями прямо в браузере и никуда не загружается.
Что такое Контрольная сумма файла SHA-1?
Инструмент вычисляет контрольную сумму SHA-1 (160-битный дайджест) выбранного файла и сравнивает её с ожидаемым значением. Файл читается блоками по 4 МБ прямо в браузере, поэтому большие файлы работают, а загрузки на сервер не происходит.
Как пользоваться Контрольная сумма файла SHA-1
- Нажмите на область загрузки или перетащите на неё файл; файл читается блоками, отображается индикатор прогресса.
- Проверьте Имя файла и Размер файла ниже, чтобы убедиться, что выбран нужный файл.
- Вставьте контрольную сумму, опубликованную поставщиком, в Ожидаемая контрольная сумма — вы получите Совпадает или Не совпадает (регистр,
0xи имя файла в конце строки игнорируются). - Выберите Формат вывода, если нужен hex прописными или Base64, и нажмите Копировать.
Пример
A file named hash-abc.txt containing the 3 bytes "abc" (no newline)
a9993e364706816aba3e25717850c26c9cd0d89d
Если вставить это значение (в любом регистре) в поле ожидаемой контрольной суммы, будет показано «Совпадает».
Когда использовать Контрольная сумма файла SHA-1
Используйте его, чтобы убедиться в целостности загрузки, резервной копии или скопированного файла, когда издатель указывает контрольную сумму SHA-1, или чтобы записать контрольную сумму перед передачей файла. Совпадение SHA-1 доказывает, что файл не был случайно повреждён, но поскольку SHA-1 взломан, оно не доказывает, что файл никто не подменял — если предлагается контрольная сумма SHA-256 или подпись, выбирайте их. Чтобы хешировать короткую строку, а не файл, используйте текстовый генератор хеша SHA-1.
Как работает Контрольная сумма файла SHA-1
Файл нарезается на куски по 4 МБ с помощью File API, и каждый кусок подаётся в инкрементный хешер SHA-1, поэтому расход памяти остаётся небольшим и можно показывать индикатор прогресса. SHA-1 дополняет сообщение до длины, кратной 512 битам, единичным битом, нулями и 64-битной длиной в порядке big-endian. Каждый блок расширяется до 80 слов (с циклическим сдвигом на 1 бит) и за 80 шагов смешивается в пять 32-битных слов состояния с помощью сдвигов, сложений и функций Ch, Parity и Maj. Пять слов в порядке big-endian образуют 160-битный дайджест (40 hex-символов). Сравнение с ожидаемой контрольной суммой выполняется по байтам дайджеста, поэтому принимаются и hex в любом регистре, и Base64.
Распространенные Случаи Использования
- Проверить ISO, установщик или образ прошивки по контрольной сумме со страницы загрузки
- Убедиться, что файл, скопированный на USB-накопитель, NAS или в облако, идентичен побитово
- Записать контрольные суммы SHA-1 артефактов релиза перед публикацией
- Выяснить, совпадает ли содержимое двух файлов с разными именами
- Сверить файлы со старыми списками SHA-1 из устаревших архивов
Примечание по Безопасности
SHA-1 взломан в части стойкости к коллизиям. Атаки SHAttered (2017) и Shambles (2020) дали реальные PDF-файлы с коллизиями и коллизии с выбранным префиксом. Браузеры и центры сертификации больше не принимают сертификаты SHA-1. Используйте его только для обратной совместимости (например, идентификаторы объектов Git, старые контрольные суммы); для всего, что связано с безопасностью, выбирайте SHA-256 или SHA-3. Контрольная сумма подтверждает целостность, только если ожидаемое значение получено по доверенному каналу: злоумышленник, способный подменить файл, обычно может подменить и контрольную сумму рядом с ним. Файл не покидает ваш браузер.
Часто Задаваемые Вопросы
Мой файл загружается на сервер?
Нет. Файл читается через браузерный File API и хешируется на вашем устройстве средствами JavaScript/WebAssembly. После загрузки страницы можно отключиться от интернета — всё продолжит работать.
Файл какого размера можно проверить?
Файл обрабатывается блоками по 4 МБ, поэтому ограничение — в основном время, а не память. Файлы в несколько гигабайт работают; скорость зависит от устройства.
Мой SHA-1 не совпадает с опубликованным. Что делать?
Сначала убедитесь, что сравниваете один и тот же алгоритм и один и тот же файл (а не недокачанный). Если значения всё равно различаются, скачайте файл заново из официального источника; устойчивое несовпадение означает, что файл повреждён или это не тот файл, который выпустил издатель.
Что можно вставить в поле ожидаемой контрольной суммы?
Hex-значение в верхнем или нижнем регистре с 0x или без, форму Base64 либо целую строку из файла контрольных сумм вида <hash> filename — сравнивается только первое слово.