Хэши MD5 и SHA

Инструмент вычисляет хэши MD5, SHA-1, SHA-256, SHA-384 и SHA-512 для текста или файла, а также подпись HMAC с ключом. Вставьте контрольную сумму — и сразу видно, совпадает ли она с одним из хэшей. Пригодится, чтобы проверить, что скачанный файл не повреждён и не подменён, сверить подпись вебхука или получить хэш для атрибута integrity.

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

Введите текст или откройте файл — хэши всех алгоритмов появятся сразу. Текст хэшируется в кодировке UTF-8. Файл хэшируется байт в байт, поэтому результат совпадает с командами sha256sum и certutil.

В поле «Сравнить с хэшем» вставьте значение с сайта загрузки: подходят hex в любом регистре, с пробелами или двоеточиями, и Base64. Совпавшая строка будет отмечена.

Данные обрабатываются в браузере и не отправляются на сервер. Размер файла — до 100 МБ: хэш считается целиком в памяти.

Запись

Вычисляем…

Текст

Файл не выбран
Любой файл до 100 МБ, его можно перетащить на поле. Файл обрабатывается только в вашем браузере.
Привет, basicweb!

Хэши

Хэши введённых данных
MD5
SHA-1
SHA-256
SHA-384
SHA-512
Вставьте контрольную сумму, например с сайта загрузки: hex или Base64.

Для вычисления хэшей включите JavaScript. Пример: SHA-256 пустой строки — e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.

Что такое хэш

Хэш-функция превращает данные любого размера в строку фиксированной длины. Одинаковые данные всегда дают одинаковый хэш, а изменение хотя бы одного байта меняет его полностью. Восстановить исходные данные по хэшу нельзя — это не шифрование и не кодирование.

  • SHA-256 — основной выбор сегодня: контрольные суммы, подписи, атрибут integrity.
  • SHA-384 и SHA-512 — длиннее и тоже надёжны; SHA-384 часто используют в integrity.
  • MD5 и SHA-1 устарели: для них умеют подбирать разные данные с одинаковым хэшем. Используйте их только для сверки старых контрольных сумм, но не для защиты.

Хэш для атрибута integrity

Атрибут integrity у script и link позволяет браузеру проверить, что файл с CDN не изменён. Значение — название алгоритма и хэш файла в Base64. Откройте файл, выберите запись «Base64» и скопируйте SHA-384:

HTML
<script src="https://cdn.example.com/lib.js"
  integrity="sha384-хэш-в-Base64"
  crossorigin="anonymous"></script>

HMAC

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

В JavaScript хэши SHA вычисляет метод crypto.subtle.digest(), а HMAC — crypto.subtle.sign() из Web Crypto API. MD5 в Web Crypto нет.

Вопросы и ответы

Почему хэш текста отличается от хэша того же текста в файле?

Файл может содержать другие переводы строк (CRLF в Windows вместо LF), невидимую метку BOM в начале или перевод строки в конце. Для сверки файла открывайте сам файл: он хэшируется байт в байт.

Можно ли хранить пароли как SHA-256?

Нет. Быстрые хэши легко перебирать. Для паролей используют специальные медленные функции — bcrypt, scrypt или Argon2 — с уникальной «солью» для каждого пароля.

Безопасно ли вставлять сюда ключи HMAC?

Вычисления выполняются в вашем браузере, данные и ключ не отправляются на сервер и не сохраняются. Но рабочие секретные ключи лучше не вставлять в посторонние инструменты без необходимости.