Пакетный хеш файлов — контрольные суммы многих файлов сразу, проверка по манифесту
Пакетный хеш файлов и проверка манифеста
Выберите или перетащите много файлов сразу, и эта страница вычислит дайджесты MD5, SHA-1, SHA-256, SHA-384 или SHA-512 для каждого из них, полностью внутри вашего браузера. Затем либо скопируйте результаты как строки, совместимые с sha256sum, для собственных заметок о выпуске, либо вставьте манифест контрольных сумм (SHA256SUMS, .sha256, .sfv, вывод BSD openssl dgst), и страница укажет, какие файлы прошли проверку, какие не совпали и каких нет. Ничего никуда не загружается. Для одного файла с большим числом алгоритмов см. Генератор хешей.
1. Выберите файлы
Перетащите файлы сюда или нажмите, чтобы выбрать их До 50 файлов, по 200 МБ каждый. Файлы остаются на этом компьютере.
Файлы не выбраны.
2. Алгоритмы
— вывод в шестнадцатеричном виде; выберите хотя бы один.
3. Результаты
Нажмите любую ячейку дайджеста, чтобы скопировать её. Имена и размеры всегда перечислены, так что таблица одновременно служит пакетным просмотром размеров файлов.
Таблица дайджестов появится здесь, когда вы выберете файлы и нажмёте «Вычислить».
4. Проверка по манифесту (необязательно)
Вставьте манифест в стиле GNU (хеш имя), BSD (SHA256 (имя) = хеш), SFV (имя crc32) или простом (sha256=хеш), либо загрузите сам файл .sha256 / SHA256SUMS / .sfv. Строки, начинающиеся с ;, считаются комментариями.
Конфиденциальность: каждый дайджест вычисляется собственным JavaScript и движком WebCrypto браузера — файлы никогда не покидают эту вкладку. Совет: после проверки загрузки эту страницу можно закрыть; ничего не сохраняется.
Что такое пакетный хеш файлов?
Контрольная сумма — короткий отпечаток файла: если пропустить байты файла через хеш-функцию, получится дайджест, который почти наверняка изменится даже при изменении одного байта файла. Распространители программ публикуют такие дайджесты рядом с загрузками, чтобы вы могли убедиться, что полученный файл — тот, что они отправили: загрузка не обрезалась и не повредилась и никто не подменил содержимое.
Делать это по одному файлу за раз нормально для одной загрузки. Как только у вас есть папка файлов или архив релиза с манифестом SHA256SUMS внутри, нужна пакетная версия: хешировать каждый файл один раз, затем проверять каждую строку манифеста против соответствующего файла. Именно этот цикл и автоматизирует страница.
Форматы манифеста, которые читает эта страница
Стиль
Пример строки
Где вы с ним встречаетесь
GNU
900150983c... hello.txt
вывод sha256sum / md5sum, файлы SHA256SUMS в релизах Linux
BSD
SHA256 (hello.txt) = 900150983c...
openssl dgst -sha256 в macOS/BSD
SFV
hello.txt 1A2B3C4D
файлы Simple File Verification, старые двоичные группы новостей
простой
sha256=ba7816bf...
страницы загрузок, заметки о выпуске, контрольные суммы Docker
Сама длина хеша определяет алгоритм: 32 шестнадцатеричных символа означают MD5, 40 — SHA-1, 64 — SHA-256, 96 — SHA-384 и 128 — SHA-512 — поэтому строкам формата GNU не нужно указывать, какая программа их создала.
Как это работает, коротко
Каждый файл один раз читается через FileReader браузера и передаётся в crypto.subtle.digest (семейство SHA) и локальную реализацию MD5. Дайджесты кодируются в шестнадцатеричный вид и выстраиваются рядом с записями манифеста; файл считается проверенным только тогда, когда вычисленный дайджест посимвольно совпадает с ожидаемым. Строки SFV содержат CRC-32 вместо криптографического хеша — страница помечает их как неподдерживаемые, а не делает вид, что CRC — это дайджест.
Распространённые ошибки
«У всех моих файлов несовпадение.» — обычная причина в том, что манифест составлен для другой версии загрузки. Сначала проверьте имена файлов: сопоставление идёт по базовым именам, поэтому dist/app-1.2.bin совпадает со строкой манифеста для app-1.2.bin. «SHA-1 проверен, значит, файл безопасен?» — нет. Проверка доказывает, что байты совпадают с тем, что выпустил издатель; надёжен ли издатель, — другой вопрос. А SHA-1 со взломанными коллизиями с 2017 года, поэтому при выборе предпочитайте манифесты SHA-256.
Частые вопросы
Медленно ли хешировать большой файл? — примерно секунда на 200 МБ на обычном компьютере; строка прогресса показывает, насколько продвинулся пакет. Можно ли проверить манифест SFV с CRC-32? — строки SFV разбираются и перечисляются, но CRC-32 эта страница не вычисляет; для отдельных файлов используйте инструмент CRC на хабе криптографии. Почему только шестнадцатеричный вид? — манифесты в реальности шестнадцатеричные; дайджесты в base64 — это отдельная возможность. Что происходит с моими файлами? — ничего: нет сервера, нет хранения, нет аналитики; закройте вкладку, и каждый байт входа исчезнет.