Пакетний хеш файлів і перевірка маніфесту

Виберіть або перетягніть багато файлів одразу, і ця сторінка обчислить дайджест MD5, SHA-1, SHA-256, SHA-384 або SHA-512 для кожного з них цілком у вашому браузері. Потім скопіюйте результати як рядки, сумісні з sha256sum, для власних приміток до релізу, або вставте маніфест контрольних сум (SHA256SUMS, .sha256, .sfv, вивід BSD openssl dgst) — і сторінка скаже, які файли пройшли перевірку, які не збіглися і яких бракує. Нічого нікуди не завантажується. Для одного файлу з більшою кількістю алгоритмів див. Генератор гешів.
Перетягніть файли сюди або натисніть, щоб вибрати їх
До 50 файлів, по 200 МБ кожен. Файли залишаються на цьому комп'ютері.
Файли не вибрано.
— вивід у hex; оберіть принаймні один.
Натисніть на будь-яку клітинку дайджесту, щоб його скопіювати. Назви й розміри завжди перелічено, тож таблиця також є переглядом розмірів файлів пакету.
Таблиця дайджестів з'явиться тут, коли ви оберете файли й натиснете «Обчислити».
Вставте маніфест у стилі GNU (хеш  назва), BSD (SHA256 (назва) = хеш), SFV (назва crc32) або простому (sha256=хеш), або завантажте сам файл .sha256 / SHA256SUMS / .sfv. Рядки, що починаються з ;, вважаються коментарями.
Конфіденційність: кожен дайджест обчислюється вбудованим JavaScript і рушієм WebCrypto браузера — файли ніколи не покидають цю вкладку. Порада: після перевірки завантаження можна безпечно закрити цю сторінку; нічого не зберігалося.

Що таке пакетне хешування файлів?

Контрольна сума — це коротке відбиток файлу: якщо пропустити байти файлу через хеш-функцію, отримаєте дайджест, який майже напевно зміниться, навіть якщо змінився лише один байт файлу. Розповсюджувачі програмного забезпечення публікують такі дайджести поруч із завантаженнями, щоб ви могли переконатися, що отриманий файл — той, який вони надіслали: завантаження не обрізалося чи не пошкодилося, і ніхто не підмінив вміст.

Перевіряти один файл за раз — нормально для одного завантаження. Щойно є тека з файлами або архів релізу з маніфестом SHA256SUMS всередині, потрібна пакетна версія: захешувати кожен файл один раз, потім перевірити кожен рядок маніфесту з відповідним файлом. Саме цей цикл автоматизує ця сторінка.

Формати маніфестів, які читає ця сторінка

СтильПриклад рядкаДе ви його зустрічаєте
GNU900150983c...  hello.txtВивід sha256sum / md5sum, файли SHA256SUMS у релізах Linux
BSDSHA256 (hello.txt) = 900150983c...openssl dgst -sha256 на macOS/BSD
SFVhello.txt 1A2B3C4DФайли Simple File Verification, старі бінарні новинні групи
простийsha256=ba7816bf...Сторінки завантажень, примітки до релізів, Docker checksums

Довжина самого хешу визначає алгоритм: 32 шістнадцяткові символи означають MD5, 40 — SHA-1, 64 — SHA-256, 96 — SHA-384, а 128 — SHA-512. Тож рядкам у форматі GNU не потрібно казати, яка програма їх створила.

Як це працює, коротко

Кожен файл один раз читається за допомогою FileReader браузера і передається в crypto.subtle.digest (сімейство SHA) і локальну реалізацію MD5. Дайджести кодуються в hex і вирівнюються поруч із записами маніфесту; файл перевіряється лише тоді, коли обчислений дайджест збігається з очікуваним символ у символ. Рядки SFV містять CRC-32, а не криптографічний хеш — сторінка позначає їх як непідтримувані, а не вдає, що CRC — це дайджест.

Типові помилки

“Усі мої файли пишуть про невідповідність.” — звична причина в тому, що маніфест створено для іншої версії завантаження. Спершу перевірте назви файлів: порівняння йде за базовими назвами, тож dist/app-1.2.bin відповідає рядку маніфесту для app-1.2.bin. “SHA-1 перевірено, тож файл безпечний?” — ні. Перевірка доводить, що байти збігаються з тим, що опублікував розробник; чи довіряти розробнику — інше питання. А SHA-1 має відомі колізії з 2017 року, тож якщо є вибір, віддавайте перевагу маніфестам SHA-256.

Часті запитання (FAQ)

Чи повільне хешування великого файлу? — приблизно секунда на 200 МБ на звичайному комп'ютері; рядок прогресу показує, наскільки далеко просунулася пакетна обробка.
Чи можна перевірити маніфест SFV з CRC-32? — рядки SFV розбираються і перелічуються, але CRC-32 ця сторінка не обчислює; для окремих файлів скористайтеся інструментом CRC на хабі криптографії.
Чому лише hex? — маніфести в реальному світі використовують hex; дайджести в base64 — окрема можливість.
Що відбувається з моїми файлами? — нічого: без сервера, без зберігання, без аналітики; закрийте вкладку — і кожен байт вхідних даних зникає.