Что такое криптографический хеш?
Криптографическая хэш-функция принимает на вход данные произвольной длины и выдаёт дайджест фиксированной длины. Один и тот же вход всегда даёт один и тот же дайджест; изменение одного бита меняет примерно половину бит результата. Этот инструмент вычисляет четыре наиболее распространённых дайджеста — MD5 (RFC 1321), SHA-1, SHA-256 и SHA-512 (семейство SHA определено в FIPS 180-4) — для любого текста или файла, который вы предоставите, не отправляя данные за пределы вашего устройства.
Как работает этот генератор хешей?
Хэширование выполняется полностью на вашей машине. SHA-1, SHA-256 и SHA-512 передаются нативному API браузера crypto.subtle.digest; MD5 использует встроенную реализацию из общественного достояния, поскольку Web Crypto не предоставляет MD5. Шаги такие:
- Ваш ввод считывается из текстового поля, либо файл читается с диска в
ArrayBuffer. Текст кодируется в UTF-8 перед хэшированием, чтобы дайджест совпадал с тем, что вернул бы серверный вызовhashlib.sha256(text.encode()). - Каждый алгоритм дополняет сообщение до границы блока и обрабатывает его блок за блоком, перемешивая входные байты с текущим внутренним состоянием через последовательность побитовых и модульно-арифметических операций.
- Когда последний блок обработан, внутреннее состояние финализируется: MD5 даёт 128 бит, SHA-1 — 160 бит, SHA-256 — 256 бит, SHA-512 — 512 бит.
- Сырые байты дайджеста форматируются либо в виде шестнадцатеричной строки в нижнем регистре, либо в стандартном Base64 — в зависимости от выбранной над панелями кодировки.
- Каждый дайджест записывается в собственное текстовое поле только для чтения с кнопкой Копировать. Включение режима Live пересчитывает хэши при каждом нажатии клавиши, чтобы можно было наблюдать эффект лавины в реальном времени.
Какой хеш-алгоритм мне использовать?
Четыре алгоритма, представленные здесь, покрывают весь спектр от устаревших контрольных сумм до современных криптографических рекомендаций. Выбирайте по задаче, а не по привычке:
- MD5 (128 бит) — быстрый и повсеместный, но криптографически взломан. Практические коллизии известны публично с 2004 года. Используйте его только для нерекритичных контрольных сумм: ключей дедупликации, инвалидации кеша, отпечатков в стиле ETag и проверки целостности файлов по доверенному каталогу.
- SHA-1 (160 бит) — также не рекомендуется для безопасности. Атака SHAttered в 2017 году публично продемонстрировала коллизию PDF. Всё ещё встречается в устаревших идентификаторах объектов Git, старых TLS-сертификатах и конструкциях HMAC, где взлом базового хэша пока не раскрывает ключ. Не выбирайте его для новых задач.
- SHA-256 (256 бит) — текущий универсальный выбор по умолчанию. Используется в отпечатках TLS-сертификатов, хэшах блоков Bitcoin, контрольных суммах релизов ПО, дайджестах контейнерных образов и большинстве современных пайплайнов подписи кода. Если сомневаетесь — берите его.
- SHA-512 (512 бит) — то же семейство SHA-2, что и SHA-256, но с большим внутренним состоянием и 64-битным размером слова. Часто быстрее SHA-256 на 64-битных процессорах и предпочтителен, когда нужен дополнительный запас по коллизиям или более длинные дайджесты для ключей HMAC.
Зачем использовать этот генератор хешей?
- Конфиденциальность: каждый байт ввода хэшируется локально в вашем браузере. Никакой загрузки файлов, никаких сетевых запросов, никаких серверных логов. Выбор файла читает данные напрямую с диска через File API.
- Четыре дайджеста за один проход: вставьте один раз и читайте MD5, SHA-1, SHA-256 и SHA-512 рядом друг с другом, переключайте кодировку вывода между hex и Base64 без повторного хэширования.
- Вывод соответствует стандартам: семейство SHA делегировано
crypto.subtle.digest— той же реализации FIPS 180-4, которой уже доверяет ваша операционная система. MD5 точно следует RFC 1321 байт в байт. - Создан для верификационных задач: live-режим показывает эффект лавины по мере набора текста; файловая панель справляется с двоичными данными в пределах памяти, доступной вкладке, чтобы вы могли проверять архивы релизов без терминала.
Каковы распространённые применения хеш-функций?
Хэши встречаются в повседневной инженерной работе:
- Проверка загрузок: сравнение SHA-256-дайджеста архива релиза со значением, опубликованным на сайте проекта, чтобы убедиться, что файл не был изменён при передаче.
- Отладка интеграций: воспроизведение того самого MD5 или SHA-256, который партнёрский сервис ожидает в подписи запроса, чтобы найти расхождение на единицу в построении канонической строки.
- Адресация контентом: генерация детерминированного идентификатора из полезной нагрузки для использования в качестве ключа кеша, маркера дедупликации или идентификатора объекта в стиле Git.
Как выглядит пример хеша?
Хэширование ASCII-строки hello даёт 5d41402abc4b2a76b9719d911017c592 для MD5, aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d для SHA-1, 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 для SHA-256 и 128-символьную hex-строку, начинающуюся с 9b71d224bd62f3785d96d46ad3ea3d73..., для SHA-512. Добавьте один пробел в конце и пересчитайте — каждый дайджест изменится до неузнаваемости.
Этот генератор хэшей работает полностью в вашем браузере на тех же примитивах, которым уже доверяет ваша операционная система: Web Crypto для семейства SHA и компактная проверенная реализация MD5 для единственного дайджеста, которого Web Crypto не предоставляет. Вставьте, перетащите файл, скопируйте дайджест — ничто другое не покидает вкладку.