Хэши MD5 и SHA
Инструмент вычисляет хэши MD5, SHA-1, SHA-256, SHA-384 и SHA-512 для текста или файла, а также подпись HMAC с ключом. Вставьте контрольную сумму — и сразу видно, совпадает ли она с одним из хэшей. Пригодится, чтобы проверить, что скачанный файл не повреждён и не подменён, сверить подпись вебхука или получить хэш для атрибута integrity.
Как пользоваться
Введите текст или откройте файл — хэши всех алгоритмов появятся сразу. Текст хэшируется в кодировке UTF-8. Файл хэшируется байт в байт, поэтому результат совпадает с командами sha256sum и certutil.
В поле «Сравнить с хэшем» вставьте значение с сайта загрузки: подходят hex в любом регистре, с пробелами или двоеточиями, и Base64. Совпавшая строка будет отмечена.
Данные обрабатываются в браузере и не отправляются на сервер. Размер файла — до 100 МБ: хэш считается целиком в памяти.
Текст
Привет, basicweb!
Хэши
| MD5 | ||
|---|---|---|
| SHA-1 | ||
| SHA-256 | ||
| SHA-384 | ||
| SHA-512 |
Для вычисления хэшей включите 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:
<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?
Вычисления выполняются в вашем браузере, данные и ключ не отправляются на сервер и не сохраняются. Но рабочие секретные ключи лучше не вставлять в посторонние инструменты без необходимости.