Генератор SHA-3 хешей (Keccak SHA3-256)
Получайте SHA-3 хеши онлайн бесплатно. Конструкция губки NIST FIPS 202 — постSHA-2 стандарт. Вывод SHA3-256 в 64 hex-символах. Только в браузере через отложенно загружаемый js-sha3; без загрузки данных.
Что такое SHA-3?
SHA-3 (Secure Hash Algorithm 3) — третье поколение стандарта Secure Hash Standard от NIST, стандартизированное в FIPS 202 в августе 2015 года. В отличие от SHA-1 и SHA-2, основанных на конструкции Меркла–Дамгора, SHA-3 использует принципиально иную конструкцию — конструкцию губки. NIST сделал этот выбор намеренно, чтобы криптоаналитический взлом SHA-2 не компрометировал автоматически SHA-3.
Конкурс NIST SHA-3 (2007–2012): NIST принял публичные заявки по всему миру в 2007 году. После трёх раундов оценки 64 кандидата сузились до пяти финалистов: BLAKE, Grøstl, JH, Keccak и Skein. В октябре 2012 года Keccak — разработанный Гвидо Бертони, Жоаном Дэменом, Михаэлем Питерсом и Жиллем Ван Аше (STMicroelectronics и NXP Semiconductors) — был выбран победителем. Все пять финалистов считались безопасными; уникальная конструкция Keccak на основе губки дала ему структурное разнообразие, которое приоритизировал NIST.
Конструкция губки: SHA-3 поглощает ввод в 1600-битное состояние (перестановка Keccak-f[1600]) в фазе поглощения, затем сжимает выходные биты из состояния в фазе сжатия. Для SHA3-256 соотношение скорость/ёмкость — 1088/512 бит. Поскольку только 256 из 1600 битов внутреннего состояния присутствуют в выводе, злоумышленник не может восстановить полное состояние из хеша — атаки расширения длины структурно невозможны. Это контрастирует с SHA-256, где полное внутреннее состояние раскрывается в выводе, требуя HMAC для предотвращения расширения длины.
SHA-3 против Keccak — различие в дополнении: NIST изменил оригинальную заявку Keccak, изменив байт разделения домена с 0x01 на 0x06. Это означает, что NIST SHA3-256 и оригинальный Keccak-256 производят разные 64-символьные выводы для каждого ввода. Это не теоретическое отличие — именно поэтому Ethereum keccak256 (зафиксированный до финализации FIPS 202) отличается от SHA3-256 этого инструмента для одной и той же строки. Никогда не используйте этот инструмент для воспроизведения адресов Ethereum.
FIPS 202 определяет четыре варианта SHA-3: SHA3-224 (56 hex-символов), SHA3-256 (64), SHA3-384 (96), SHA3-512 (128). Этот инструмент реализует SHA3-256 — наиболее распространённый вариант, наиболее непосредственно сравнимый с SHA-256.
Примечание о библиотеке: SHA-3 ещё не включён в спецификацию Web Crypto API браузера (crypto.subtle поддерживает только SHA-1, SHA-256, SHA-384, SHA-512). Этот инструмент отложенно загружает JavaScript библиотеку js-sha3 (~10 КБ в сжатом виде) при первом использовании. После этой единственной загрузки все вычисления выполняются локально в браузере — данные ввода никогда не передаются.
Когда использовать SHA-3: новые протоколы, требующие структурного разнообразия по сравнению с SHA-2; MAC с ключом без HMAC обёртки (KMAC128/256 по NIST SP 800-185); постквантовое хеджирование как резерв SHA-2; соответствие системам, требующим FIPS 202. Когда оставаться с SHA-256: универсальная поддержка библиотек, аппаратное ускорение (расширения SHA-NI), совместимость с существующими протоколами и большинство повседневных задач целостности, где SHA-256 уже является установленным стандартом.
// SHA-3 (NIST FIPS 202 SHA3-256) using js-sha3 library
import { sha3_256 } from 'js-sha3';
const hash = sha3_256('Hello, World!');
// → '882f4b6991a775295186a4e3cc5ece9fc0b618c8c3e7a7beafdd0f56f13ae43b'
// Note: this differs from Ethereum's keccak256 for the same input:
// keccak256('Hello, World!') = 'acaf3289d7b601cbd114fb36c4d29c85bbfd5e133f14cb355c3fd8d99367964f'
// The difference is the padding byte: 0x06 (SHA-3) vs 0x01 (original Keccak) Примеры SHA-3
Проверка тестового вектора NIST FIPS 202
abc
3a985da74fe225b2045c172d6bd390bd855f086e3e9d525b46bfe24511431532
SHA3-256("abc") = 3a985da74fe225b2045c172d6bd390bd855f086e3e9d525b46bfe24511431532 — это официальный тестовый вектор NIST FIPS 202. Вставьте «abc» в инструмент и подтвердите этот точный вывод, чтобы убедиться, что вы вычисляете NIST SHA-3 (а не оригинальный Keccak). Этот единственный тест отличает совместимую с FIPS реализацию SHA-3 от использующей более старый байт дополнения Keccak.
Различие Keccak и SHA-3 — одинаковый ввод, разный вывод
Hello
SHA3-256("Hello") из этого инструмента (NIST FIPS 202) = 8ca66ee6b2fe4bb928a8e3cd2f508de4119c0895f22df86f0ab7e30e487e4500. Ethereum keccak256("Hello") = 06b3dfaec148fb1bb2b066f10ec285e7c9bf402ab32aa78a5d38e34566810cd2. Одинаковый ввод, разные 64-символьные hex-выводы. Разница — в суффиксе дополнения: NIST SHA-3 использует 0x06, тогда как оригинальный Keccak (который Ethereum зафиксировал в 2013 году) использует 0x01. Ethereum предшествует стандартизации NIST в 2015 году и навсегда отделился от варианта FIPS 202.
Постквантовый архивный хеш
NIST SP 800-57 Part 1 Rev 5 — Recommendation for Key Management
SHA3-256 обеспечивает 128-битную устойчивость к прообразам против алгоритма Гровера на квантовом компьютере — тот же эффективный уровень защиты, что и SHA-256 против квантовой атаки. Для данных, которые должны оставаться защищёнными от подмены после 2050 года, использование SHA-3 наряду с SHA-256 обеспечивает защиту в глубину: если обнаружится уязвимость в конструкции одного алгоритма (Меркль–Дамгор для SHA-2; Keccak губка для SHA-3), другой остаётся безопасным. Институциональные архивы и государственные документы всё чаще используют манифесты с двойным хешем (SHA-256 + SHA3-256). Также см. Генератор SHA-256 для стороны SHA-2.
Аутентификация сообщения HMAC-SHA3-256 с ключом
POST /api/ledger
{"amount":250000,"from":"acct-A","to":"acct-B"} HMAC-SHA3-256 — современная альтернатива HMAC-SHA-256 для аутентификации сообщений с ключом. Поскольку конструкция губки SHA-3 нативно устойчива к атакам расширения длины (фаза сжатия отбрасывает внутреннее состояние), чистый SHA3-256 MAC с ключом (KMAC, определённый в NIST SP 800-185) также безопасен — в отличие от чистого SHA-256, требующего HMAC обёртки для защиты от расширения длины. Вставьте тело канонического запроса для просмотра SHA3-256 отпечатка перед применением HMAC.
Как получить SHA-3 хеши
- 1
Вставьте текст в поле ввода
Выберите вкладку «Текст» и введите или вставьте любую строку. SHA3-256 хеш обновляется в реальном времени по мере ввода. При первом использовании библиотека js-sha3 (~10 КБ) загружается и кешируется — при первом вычислении хеша возможна небольшая задержка; все последующие вычисления мгновенны. Алгоритм уже установлен на SHA-3 (NIST FIPS 202 SHA3-256).
- 2
Скопируйте 64-символьный hex-вывод
Нажмите «Скопировать» рядом с результатом хеша. 64-символьная строчная hex-строка копируется в буфер обмена. Используйте переключатель «ПРОПИСНЫЕ», если целевая система требует прописные буквы. Этот вывод совпадает с тем, что выдаёт любая совместимая с FIPS 202 реализация SHA3-256 — но он отличается от Ethereum keccak256 для того же ввода.
- 3
Проверьте через вкладку «Сравнение»
Переключитесь на вкладку «Сравнение» и вставьте два SHA3-256 хеша рядом. Инструмент использует постоянное по времени сравнение для сообщения о совпадении или несовпадении без утечки временно́й информации. Удобно для проверки тестовых векторов NIST CAVP, проверки архивных манифестов или подтверждения идентичного вывода двух SHA3-256 реализаций.
Технические детали
- Алгоритм: конструкция губки Keccak-f[1600]
- SHA3-256 применяет перестановку Keccak-f[1600] (24 раунда операций theta, rho, pi, chi, iota над массивом состояния 5×5×64) в конструкции губки со скоростью=1088 бит и ёмкостью=512 бит. Ввод поглощается в 136-байтных (1088-битных) блоках; 256 бит вывода сжимаются. Разделитель домена FIPS 202 добавляет 0x06 перед дополнением. Реализация: NIST FIPS 202 (2015), раздел 6.
- Вывод: SHA3-256 по умолчанию, 64 hex-символа (FIPS 202 также определяет 224/384/512)
- Этот инструмент выводит SHA3-256: всегда ровно 64 шестнадцатеричных символа (256 бит = 32 байта). NIST FIPS 202 также стандартизирует SHA3-224 (56 символов), SHA3-384 (96) и SHA3-512 (128) — все используют одну и ту же перестановку Keccak-f[1600] с разными соотношениями скорость/ёмкость. Длина вывода фиксирована независимо от размера ввода.
- Производительность: отложенно загружаемый js-sha3 (~10 КБ); ~150–400 МБ/с в браузере
- В отличие от SHA-2 маршрутов (использующих нативный Web Crypto API браузера), SHA-3 не включён в спецификацию Web Crypto. Этот инструмент загружает библиотеку js-sha3 (~10 КБ в сжатом виде) при первом использовании, затем кеширует её. Типичная пропускная способность: 150–400 МБ/с на JavaScript против 400–700 МБ/с для SHA-256 через Web Crypto. Для хеширования текста (килобайты) разница незаметна.
- Стандарты: NIST FIPS 202 (2015), NIST SP 800-185 (KMAC), NIST IR 8105
- Стандартизирован в FIPS 202 (август 2015). NIST SP 800-185 (2016) определяет KMAC128 и KMAC256 — функции MAC на основе SHA-3 с ключом, нативно устойчивые к расширению длины без HMAC обёртки. NIST IR 8105 рекомендует варианты SHA-3 для постквантового запаса безопасности. В настоящее время одобрен для всех уровней защиты до 2030 года и далее по NIST SP 800-131A Rev 2.
Лучшие практики
- Не путайте SHA3-256 с Ethereum keccak256
- Это разные алгоритмы с разными выводами для каждого ввода. Этот инструмент вычисляет NIST FIPS 202 SHA3-256 (байт дополнения 0x06). Ethereum keccak256 использует оригинальное дополнение Keccak (0x01). При вычислении хешей адресов Ethereum, слотов хранилища EVM или результатов keccak256() в Solidity вам нужен специализированный инструмент keccak256 — этот инструмент даст неверные результаты для таких сценариев.
- Используйте SHA-3 как резервный наряду с SHA-256, а не как замену
- SHA-3 и SHA-2 используют структурно разные конструкции (губка против Меркла–Дамгора). Манифест с двойным хешем (SHA-256 + SHA3-256) обеспечивает защиту в глубину: если когда-либо будет найдена криптоаналитическая уязвимость в конструкции одного семейства, другое остаётся безопасным. Для долгосрочных архивных данных и государственных документов NIST рекомендует рассмотреть этот подход с двойным алгоритмом. Для повседневного использования SHA-256 в одиночку по-прежнему полностью достаточен.
- Предпочитайте KMAC по сравнению с HMAC-SHA3-256 для новых конструкций MAC с ключом
- NIST SP 800-185 определяет KMAC128 и KMAC256 — специализированные MAC с ключом на основе SHA-3. Поскольку конструкция губки нативно устойчива к расширению длины, KMAC не нуждается в двойном хешировании, которое требует HMAC для безопасности. Для новых протоколов с гибкостью в выборе MAC алгоритма KMAC128 (128-битная защита) или KMAC256 (256-битная защита) чище и немного эффективнее, чем HMAC-SHA3-256.
- Используйте постоянное по времени сравнение при проверке SHA-3 хешей в коде
- При сравнении двух SHA3-256 хешей в коде всегда используйте постоянное по времени функцию равенства: Node.js
crypto.timingSafeEqual(), Pythonhmac.compare_digest(), Gosubtle.ConstantTimeCompare(). Наивное строковое равенство (=== или ==) утекает временну́ю информацию, позволяющую злоумышленнику восстановить ожидаемый хеш байт за байтом. Это применимо в равной мере к SHA-3 и всем другим хеш-функциям. Вкладка «Сравнение» этого инструмента уже использует постоянное по времени сравнение.
Вопросы и ответы по SHA-3
SHA-3 и Keccak — одно и то же?
0x01 перед дополнением; NIST SHA-3 (FIPS 202, 2015) добавляет 0x06. Это однобайтовое различие означает, что SHA3-256 и Keccak-256 производят разные 64-символьные выводы для каждого ввода. Алгоритмы структурно идентичны в остальном — та же перестановка Keccak-f[1600], та же конструкция губки. Когда кто-то говорит «Keccak» в контексте Ethereum/блокчейна, почти всегда имеют в виду оригинальный вариант с до-FIPS дополнением, а не NIST SHA-3. Почему Ethereum использует keccak256, а не SHA-3?
0x01), тогда как SHA3-256 этого инструмента использует дополнение NIST FIPS 202 (0x06). Один структурный алгоритм, разные выводы. Никогда не используйте этот инструмент для воспроизведения адресов Ethereum или keccak256 EVM — получите неверные результаты. Что такое конструкция губки?
Стоит ли использовать SHA-3 вместо SHA-2?
SHA-3 быстрее SHA-256?
Какова длина SHA-3 хеша из этого инструмента?
SHA-3 квантово-устойчив?
Отправляются ли мои данные на сервер при использовании этого инструмента?
js-sha3 загружается один раз из CDN, ~10 КБ), все вычисления хешей выполняются полностью в браузере на JavaScript. Откройте DevTools → вкладку Network при вычислении хеша текста — увидите ноль исходящих запросов, несущих данные ввода. В отличие от SHA-2 инструментов на этом сайте (использующих встроенный в браузер Web Crypto API), SHA-3 ещё не включён в спецификацию Web Crypto, поэтому требуется JavaScript библиотека. Загрузка библиотеки — единственный сетевой запрос; ваш текст никогда не покидает страницу. Также: генератор SHA-256 и генератор MD5 не используют внешних библиотек вообще. Что такое конкурс NIST SHA-3?
SHA-3 уязвим к атакам расширения длины?
Похожие инструменты
Все инструменты →Декодер JWT
Безопасность
Декодируйте JWT-токены онлайн бесплатно. Просмотр header, payload, signature, срока действия, алгоритма и claims. 100% в браузере — токен не покидает устройство. Без регистрации.
Генератор MD5-хешей и контрольных сумм файлов
Безопасность
Создавайте MD5, SHA-256, SHA-1 и SHA-512 хеши онлайн бесплатно. Хеширование текста или файлов в браузере, проверка контрольных сумм и копирование результатов. Без регистрации.
Генератор случайных паролей — настраиваемый и безопасный
Безопасность
Генерируйте сильные случайные пароли мгновенно — бесплатно, 100% в браузере. Настройка длины и символов, batch до 50 с анализом энтропии.
Генератор SHA-1 хешей (160-бит, устаревший)
Безопасность
Получайте SHA-1 хеши в браузере — 40-символьный hex-вывод, без загрузки на сервер. Устаревший инструмент для отпечатков Git, проверки старых сертификатов и аудита миграции.
Генератор SHA-256 хешей и контрольных сумм
Безопасность
Получайте SHA-256 хеши онлайн бесплатно. Хеширование текста или файлов в браузере, проверка контрольных сумм, 64-символьный hex-вывод. Без регистрации; данные не покидают страницу.
Генератор SHA-384 хешей (хеш TLS Suite B)
Безопасность
Получайте SHA-384 хеши онлайн — 96-символьный hex-вывод, защита от атак расширения длины, соответствие NSA Suite B. Используется с AES-256-GCM в TLS. Все вычисления в браузере через Web Crypto API.