Генератор хешей (MD5 / SHA-1 / SHA-256)
Введите или вставьте любой текст ниже, чтобы одновременно вычислить его хеши MD5, SHA-1 и SHA-256 прямо в браузере. SHA-1 и SHA-256 используют встроенный в браузер движок WebCrypto; MD5 использует небольшую локальную реализацию, поскольку не входит в WebCrypto — намеренно, потому что он скомпрометирован. Прочтите предупреждение ниже перед использованием MD5 для чего-либо, кроме контрольной суммы.
MD5 криптографически скомпрометирован
Практические коллизии MD5 (два разных входа, дающих одинаковый хеш) демонстрируются с 2004 года и теперь генерируются за секунды на обычном оборудовании. MD5 годится ТОЛЬКО для контрольных сумм и совместимости со старыми системами, которые уже его используют — НИКОГДА для паролей, цифровых подписей или чего-либо ещё, требующего устойчивости к преднамеренной подделке. Для всего, что связано с безопасностью, используйте SHA-256 (а для паролей — специализированную функцию хеширования паролей вроде bcrypt/argon2).
Вычисление…
Результат
- MD5
- SHA-1
- SHA-256
Генератор хешей (MD5 / SHA-1 / SHA-256)
Криптографическая хеш-функция превращает вход произвольной длины в строку шестнадцатеричных цифр фиксированной длины (128 бит/32 hex-символа для MD5, 160 бит/40 символов для SHA-1, 256 бит/64 символа для SHA-256) — детерминированно (один и тот же вход всегда даёт один и тот же выход) и, для хорошо спроектированной функции, практически необратимо (восстановить вход по хешу нельзя), причём нахождение двух разных входов с одинаковым выходом («коллизия») должно быть вычислительно неосуществимо.
MD5 (1992) и SHA-1 (1995) сегодня не обладают этим последним свойством. Коллизии MD5 практически осуществимы с 2004 года и занимают секунды на ноутбуке; SHA-1 последовал в 2017 году после демонстрации «SHATTERED» от Google, и с тех пор основные браузеры и удостоверяющие центры полностью перестали доверять сертификатам на SHA-1. Ни один из них не «сломан» в смысле «можно обратить» — вы всё ещё не можете восстановить исходный текст по хешу выше — они скомпрометированы конкретно для всего, что зависит от устойчивости к коллизиям: цифровых подписей, отпечатков сертификатов или любой схемы, где злоумышленник, подобрав второй вход с тем же хешем, мог бы незаметно подменить поддельным документом, сообщением или файлом легитимный.
SHA-256, часть семейства SHA-2 (2001), не имеет известных практических атак на коллизии или прообраз и остаётся сегодняшним стандартным выбором для всего связанного с безопасностью, кроме хранения паролей — проверки целостности файлов, структур blockchain/Merkle-дерева, отпечатков сертификатов и общих проверок целостности данных. Он медленнее MD5 намеренно (больше внутренних раундов), что не имеет значения при хешировании короткого текста, как в этом инструменте, но важно при хешировании гигабайт данных.
Ни MD5, ни SHA-1, ни SHA-256 никогда не следует использовать для прямого хранения паролей, даже несмотря на то, что сам SHA-256 не «сломан» — хеш-функции общего назначения намеренно быстрые, а это ровно то свойство, которое вредно для хранения паролей: быстрый хеш позволяет злоумышленнику, укравшему базу паролей, перебирать миллиарды вариантов в секунду. Специализированные функции хеширования паролей вроде bcrypt, scrypt или Argon2 намеренно медленные и требовательные к памяти именно для того, чтобы сделать такой перебор непрактичным. Этот инструмент вычисляет только хеши общего назначения, для контрольных сумм и сравнения целостности файлов — никогда не используйте его вывод вместо настоящего хеширования паролей.
Глоссарий
- Хеш-функция
- Детерминированная функция, превращающая входные данные любой длины в дайджест фиксированной длины, спроектированная так, чтобы быть практически необратимой.
- Hex-дайджест
- Результат хеш-функции, представленный в виде строчных шестнадцатеричных символов — в этом формате хеши показывает данный (и большинство других) инструментов.
- Коллизия
- Два разных входа, дающих одинаковый хеш — свойство, устойчивость к которому на практике утратили и MD5, и SHA-1, из-за чего оба небезопасны для всего, что требует устойчивости к подделке.
- MD5
- Хеш-функция 1992 года, дающая 128-битный дайджест — криптографически скомпрометирована (практические коллизии с 2004 года), безопасна только для контрольных сумм/совместимости со старыми системами.
- SHA-256
- Хеш-функция 2001 года (часть семейства SHA-2), дающая 256-битный дайджест, без известных практических атак на коллизии — сегодняшний стандартный выбор для проверки целостности.
- Контрольная сумма
- Хеш, используемый для проверки того, что данные не были случайно повреждены (например, при загрузке файла) — это не задача безопасности, поэтому даже MD5 остаётся приемлемым для этой цели.
API-эквивалент
У этого инструмента нет API-эквивалента в нашем сервисе — вычисление хеша не является фактом об IP-адресе, поэтому нашему API здесь нечего возвращать. Хеширование выше выполняется полностью на вашем устройстве с помощью движка WebCrypto браузера (плюс локальная реализация MD5); ничего никуда не отправляется. Если вы искали наш API для поиска по IP — он покрывает геолокацию, ASN/сеть и данные об угрозах/мошенничестве для IP-адреса:
Часто задаваемые вопросы
- Безопасно ли использовать MD5?
- Только для контрольных сумм и совместимости со старыми системами, которые его уже используют. Практические коллизии MD5 демонстрируются с 2004 года и сегодня генерируются за секунды — никогда не используйте его для паролей, цифровых подписей или чего-либо, требующего устойчивости к преднамеренной подделке. Для всего связанного с безопасностью используйте SHA-256.
- В чём разница между MD5, SHA-1 и SHA-256?
- Все три — криптографические хеш-функции, различающиеся в основном размером выхода и устойчивостью к коллизиям: MD5 (128 бит) и SHA-1 (160 бит) имеют практические, продемонстрированные атаки на коллизии и считаются скомпрометированными для целей безопасности; SHA-256 (256 бит, часть SHA-2) не имеет известной практической атаки на коллизии и остаётся сегодняшним стандартным выбором.
- Можно ли использовать это для хеширования паролей?
- Нет — ни один из этих трёх алгоритмов не подходит. Все они намеренно БЫСТРЫЕ, а это ровно то свойство, которое вредно для хранения паролей: оно позволяет злоумышленнику, укравшему базу паролей, перебирать миллиарды вариантов в секунду. Для паролей используйте специализированную, намеренно медленную функцию хеширования паролей (bcrypt, scrypt или Argon2).
- Почему SHA-1 и SHA-256 занимают время, а MD5 — мгновенный?
- SHA-1 и SHA-256 выполняются через движок WebCrypto браузера, который возвращает Promise (асинхронную операцию) даже для почти мгновенного вычисления; MD5 не входит в WebCrypto, поэтому этот инструмент вычисляет его синхронно небольшой локальной реализацией. Для такого короткого текста разница на практике незаметна.
- Отправляется ли мой текст на сервер?
- Нет — SHA-1/SHA-256 выполняются через встроенный движок WebCrypto браузера, а MD5 — через локальную реализацию; эта страница не делает ни одного сетевого запроса для вычисления ни одного из трёх хешей.
- Что такое коллизия хеша?
- Два разных входа, дающих идентичный хеш. Безопасная хеш-функция должна делать нахождение коллизии вычислительно неосуществимым; MD5 и SHA-1 на практике утратили это свойство, поэтому они небезопасны для всего, что требует устойчивости к подделке.
Понравился инструмент? Бесплатный аккаунт нашего API даёт 1000 запросов в день.Смотреть документацию API →