Хэш SHA-256 онлайн
Основа Bitcoin и TLS — 256-битный хэш из семейства SHA-2, криптографически стоек и на сегодня не взломан. Считается прямо в браузере — текст никуда не отправляется.
Вычислить SHA-256
Результат пересчитывается сам, пока вы печатаете. В режиме «По строкам» пустые строки тоже хэшируются — результат всегда совпадает по числу строк со входом. Нужна другая функция — на полной странице калькулятора их 32.
История SHA-256
SHA-256 — часть семейства SHA-2, которое NSA разработало и NIST опубликовало в 2001 году (FIPS 180-2) как ответ на растущие сомнения в стойкости SHA-1. Внешне SHA-2 похож на предшественника — та же общая схема, — но внутреннее устройство изменили заметно: больше раундов, больше регистров состояния, более сложная процедура «растягивания» сообщения. Это дало запас прочности, которого не хватило SHA-1.
Сегодня SHA-256 — один из самых используемых алгоритмов в мире: он лежит в основе TLS-сертификатов, на нём построен протокол Bitcoin (в виде двойного SHA-256 для proof-of-work и адресов), его использует Git в новом формате репозиториев, и он остаётся стандартным выбором NIST для большинства криптографических задач.
Как устроен алгоритм
Как и MD5/SHA-1, SHA-256 — конструкция Меркла — Дамгора: дополнение до кратности 512 бит, разбиение на блоки, последовательная функция сжатия. Внутреннее состояние — восемь 32-битных регистров (a–h), инициализированных дробными частями квадратных корней первых восьми простых чисел. Каждый блок проходит 64 раунда.
Перед раундами 16 слов блока «растягиваются» в 64 через процедуру message schedule — но, в отличие от простого XOR и сдвига у SHA-1, здесь используются две функции σ₀/σ₁ на основе побитовых вращений и сдвигов, дающие более сложное перемешивание. В каждом раунде участвуют ещё две функции — Ch (choose, «голосование по битам» между тремя словами) и Maj (majority, «большинство») — и 64 константы, полученные из дробных частей кубических корней первых 64 простых чисел (тот же приём «случайных, но проверяемых» констант, что и в MD5 с синусом).
Характеристики
| Параметр | Значение |
|---|---|
| Длина хэша | 256 бит (64 hex-символа) |
| Размер блока | 512 бит |
| Раундов на блок | 64 |
| Внутреннее состояние | 8 × 32-битных регистра (a–h) |
| Конструкция | Меркла — Дамгора |
| Опубликован | 2001, FIPS 180-2 (NIST/NSA) |
Где применяется
- TLS/SSL-сертификаты и большинство современных протоколов шифрования
- Bitcoin — proof-of-work майнинга и вычисление адресов (двойной SHA-256)
- Git — новый формат репозиториев (SHA-256), постепенно вытесняющий SHA-1
- Цифровые подписи, контроль целостности программ и обновлений
Криптостойкость
На сегодняшний день SHA-256 не взломан: практических коллизий или прообразных атак не существует, лучшие известные результаты криптоанализа работают только против сильно урезанных версий алгоритма (меньше раундов) и не приближаются к практической угрозе для полной версии. NIST и большинство отраслевых стандартов продолжают рекомендовать SHA-256 (и остальной SHA-2) как основной выбор.
Для хранения паролей SHA-256 «в лоб» всё равно не подходит — он слишком быстрый, что облегчает перебор. Для паролей нужны специализированные медленные функции (bcrypt, scrypt, Argon2), которые могут использовать SHA-256 лишь как один из внутренних строительных блоков.