Хеши: MD5, SHA-256 и другие
Введите текст или перетащите файл — все пять сумм сразу.
- Полностью бесплатноБез аккаунта, без дневных лимитов, без платных тарифов.
- Ничего не загружаетсяФайлы обрабатываются на вашем устройстве и не попадают на сервер.
- Результат без подвохаБез водяных знаков, без принудительного ухудшения качества, без ограничения размера.
- Обновления на видуКаждое исправление и каждый новый инструмент записаны на странице изменений.
Что делает этот инструмент
Хеш-функция превращает любой вход — фразу, пароль, образ диска на 4 ГБ — в отпечаток фиксированной длины. Измените во входе один бит, и отпечаток изменится целиком: именно поэтому хеши стали стандартным способом убедиться, что файл дошёл без повреждений, проверить совпадение двух документов, не сравнивая их побайтово, и хранить пароли, не храня сам пароль. Эта страница считает MD5, SHA-1, SHA-256, SHA-384 и SHA-512 одновременно для того, что вы введёте, или для любого выбранного файла и показывает результат в шестнадцатеричном виде либо в Base64.
Семейство SHA считает Web Crypto API браузера — та же реализация, что работает в TLS, — поэтому всё быстро и корректно даже на больших файлах. MD5 браузеры не предоставляют, поэтому в страницу встроена компактная эталонная реализация RFC 1321, проверенная на стандартных тестовых векторах. Файлы читаются локально и никуда не загружаются.
Как пользоваться
Введите или вставьте текст — пять хешей обновляются на ходу. Нажмите «Файл…», чтобы посчитать сумму для загруженного дистрибутива, установщика или резервной копии; под полем ввода появятся имя файла и число байт. Переключатели «Прописные» и Base64 приводят вывод к тому формату, которым пользуется ваш источник: Linux-команда sha256sum печатает строчный hex, дайджесты образов Docker и многие API тоже, а заголовки Content-MD5 и атрибуты Subresource Integrity используют Base64. Чтобы проверить загрузку, вставьте контрольную сумму со страницы разработчика в поле сверки: подходящая строка подсветится зелёным, а статус сообщит о совпадении независимо от регистра и формата.
Включите HMAC и введите секретный ключ, чтобы получить хеши с ключом (HMAC-SHA256 и родственные) — именно так устроены подписи вебхуков Stripe, GitHub и Slack, AWS Signature v4 и многие схемы аутентификации API. HMAC для MD5 здесь не предусмотрен: ни одна современная система не должна им пользоваться.
Какой алгоритм выбрать
SHA-256 — выбор по умолчанию: он есть в стандартной библиотеке любого языка, даёт дайджест из 64 шестнадцатеричных символов, и практических атак на него не известно. SHA-512 быстрее на 64-битных процессорах и применяется там, где нужен более длинный дайджест. SHA-1 и MD5 сломаны в части стойкости к коллизиям — два разных файла с одинаковым MD5 исследователи получили ещё в 2004 году, а с одинаковым SHA-1 в 2017-м (атака SHAttered), — поэтому для подписей и сертификатов они не годятся, но остаются приемлемыми вне задач безопасности: для дедупликации, ключей кеша и сверки загрузки с суммой, опубликованной тем же сайтом. Для хранения паролей ни один из них сам по себе не подходит: нужны bcrypt, scrypt или Argon2, намеренно медленные.
История: от MD5 к SHA-3
MD5 разработал Рон Ривест в MIT в 1991 году (RFC 1321) как более быстрого преемника MD4, и он стал универсальной контрольной суммой интернета девяностых. В 1995 году АНБ выпустило SHA-1 (FIPS 180-1) с выводом в 160 бит. По мере развития атак на оба алгоритма NIST опубликовал в 2001 году семейство SHA-2, куда входят SHA-256 и SHA-512, а после открытого конкурса в 2015 году утвердил Keccak в качестве SHA-3 — структурно иного запасного варианта. Браузеры открыли доступ к SHA-1, SHA-256, SHA-384 и SHA-512 через Web Crypto API, стандартизированный W3C в 2017 году, — благодаря этому такие инструменты и работают без всякого сервера.
Где это нужно
Проверка образов ISO, установщиков и прошивок по SHA-256, опубликованному на странице загрузки; идентификаторы коммитов Git (SHA-1, постепенно переходящий на SHA-256); дайджесты образов Docker и OCI (sha256:…); файлы блокировки пакетов и хеши Subresource Integrity в HTML; проверка подписи вебхука через HMAC-SHA256; ETag и ключи кеша в CDN; дедупликация файлов в системах резервного копирования; доказательство работы в Bitcoin (двойной SHA-256); быстрая сверка двух больших выгрузок. Если подпись или дайджест приехали внутри JWT или полезной нагрузки JSON, сначала раскодируйте контейнер, а затем проверьте хеш здесь.
Частые вопросы
Загружается ли мой файл на сервер?
Нет. Файл читает ваш браузер и хеширует его локально через Web Crypto API. Можно отключиться от интернета — всё продолжит работать.
Почему мой хеш не совпадает с контрольной суммой разработчика?
Чаще всего загрузка неполная или это другая версия файла, либо вы сравниваете hex с Base64. Поле сверки принимает оба формата и не смотрит на регистр; если совпадения всё равно нет, скачайте файл заново.
Можно ли восстановить исходный текст из хеша?
Нет. Хеширование одностороннее. Короткие и распространённые входы находят по таблицам подстановки — именно поэтому пароли нельзя хранить просто хешем.
Безопасно ли до сих пор пользоваться MD5?
Для контрольных сумм и дедупликации — да. Для всего, что связано с безопасностью: подписей, сертификатов, хранения паролей — нет; берите SHA-256 и выше, а для паролей — медленный хеш вроде Argon2.
Что такое HMAC?
Хеш в сочетании с секретным ключом: получить или проверить его может только тот, у кого есть ключ. Это стандартный способ, которым API подписывают вебхуки и запросы.