Генератор хешей
Введите текст или выберите файл и получите его хеши MD5, SHA-1, SHA-256, SHA-384 и SHA-512 рядом друг с другом, у каждого своя кнопка копирования. Хеширование выполняется на вашем устройстве с помощью Web Crypto API браузера и локальной реализации MD5, поэтому файлы никуда не загружаются.
Символов: 0 · слов: 0 · строк: 0
- MD5не для безопасности
- —
- SHA-1не для безопасности
- —
- SHA-256
- —
- SHA-384
- —
- SHA-512
- —
Символов: 0 · слов: 0 · строк: 0
Всё работает в этой вкладке браузера. Ваш текст никуда не загружается и не сохраняется.
Размеры дайджестов
Длины и дайджесты пустой строки вычислены собственной реализацией MD5 этой страницы и Web Crypto API при сборке страницы.
| Алгоритм | Бит в дайджесте | Длина в hex | Бит в блоке | Статус | Хеш пустой строки |
|---|---|---|---|---|---|
| MD5 | 128 | 32 | 512 | Взломан: коллизии найдены в 2004 году | d41d8cd98f00b204e9800998ecf8427e |
| SHA-1 | 160 | 40 | 512 | Взломан: коллизия показана в 2017 году | da39a3ee5e6b4b0d3255bfef95601890afd80709 |
| SHA-256 | 256 | 64 | 512 | Надёжный (SHA-2) | e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 |
| SHA-384 | 384 | 96 | 1024 | Надёжный (SHA-2) | 38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b |
| SHA-512 | 512 | 128 | 1024 | Надёжный (SHA-2) | cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e |
Пять алгоритмов, два из них устарели
Хеш-функция превращает входные данные любого размера в «отпечаток» фиксированной длины. Если изменить один символ, примерно половина битов результата меняется, поэтому даже «UltKit» и «ultkit» дают совершенно разные хеши. MD5, опубликованный Роном Ривестом в RFC 1321 в 1992 году, выдаёт 128 бит (32 шестнадцатеричных символа). В 2004 году Сяоюнь Ван с коллегами показали, как построить два разных входа с одинаковым хешем MD5, а к 2012 году вредоносная программа Flame использовала коллизию MD5, чтобы подделать сертификат подписи кода Microsoft. SHA-1 (160 бит) постигла та же участь, когда Google и CWI Amsterdam в 2017 году опубликовали первую реальную коллизию, SHAttered. Оба алгоритма помечены здесь как «не для безопасности».
SHA-256, SHA-384 и SHA-512 относятся к семейству SHA-2, описанному NIST в FIPS 180-4; практических атак на них не известно. SHA-256 используется по умолчанию для загрузок программ, в новом формате объектов Git, сертификатах TLS и в Bitcoin. MD5 и SHA-1 по-прежнему подходят для задач без злоумышленника, например для выявления случайных повреждений или поиска дубликатов файлов, поэтому многие страницы загрузки до сих пор указывают их.
Почему хеширование — это не шифрование
Шифрование по замыслу обратимо: у кого есть ключ, тот получит исходные данные. У хеша ключа нет, и обратить его нельзя, потому что каждому хешу соответствует бесконечно много входов. Но это не делает хеш надёжным хранилищем секретов. Если злоумышленник видит SHA-256 короткого или распространённого значения, он просто хеширует варианты, пока один не совпадёт, а готовые таблицы покрывают миллиарды известных паролей. Быстрые хеши создаются быстрыми, и современные GPU перебирают миллиарды вариантов SHA-256 в секунду.
Поэтому храните пароли с помощью намеренно медленного хеша с солью, такого как Argon2, bcrypt или scrypt, а не обычного MD5 или SHA-256, а сами пароли создавайте в генераторе паролей. Эта страница нужна для того, что быстрые хеши делают хорошо: проверить, что скачанный файл совпадает с контрольной суммой издателя, сравнить два файла, не открывая их, или проверить хеш, вычисленный вашим кодом. Текст хешируется как UTF-8 без завершающего перевода строки; обычно именно поэтому результат отличается от echo "text" | sha256sum в терминале. В разделе инструменты разработчика на одном примере сравниваются хеширование и обратимые кодировки.
Часто задаваемые вопросы
- Как проверить скачанный файл по контрольной сумме SHA-256?
- Выберите файл в разделе «Хеш файла», затем сравните строку SHA-256 со значением на сайте издателя. Должен совпасть каждый символ; шестнадцатеричная запись в верхнем регистре меняет только вид букв от a до f.
- Можно ли расшифровать хеш MD5 или SHA-256?
- Нет, расшифровывать нечего. Сайты, которые обещают обратить хеш, ищут его в таблицах ранее хешированных строк, а это работает только для коротких или распространённых значений.
- Зачем нужен MD5, если он взломан?
- Многие системы по-прежнему публикуют контрольные суммы MD5, и случайные изменения он обнаруживает вполне надёжно. Он взломан только против злоумышленника, который может намеренно создать файлы с одинаковым хешем.
- Какой хеш MD5 у пустой строки?
- d41d8cd98f00b204e9800998ecf8427e. Это значение обычно означает, что программа хешировала пустые данные, например потому, что файл не загрузился до вычисления хеша.
- SHA-512 надежнее, чем SHA-256?
- Оба не взломаны и недоступны для перебора. У SHA-512 длиннее результат, и на 64-разрядных процессорах он может работать быстрее, но SHA-256 чаще ожидают для контрольных сумм и подписей.