Генератор хешей SHA-3 и Keccak

Вычисляйте дайджесты SHA3-224/256/384/512, Keccak-256/512 и SHAKE128/256 из текста или hex-байтов прямо в вашем браузере.

Генератор хешей SHA-3 и Keccak работает целиком в вашем браузере. Текст и hex-байты, которые вы хешируете, обрабатываются на вашем устройстве и никогда не загружаются в ArrayKit.

Открыть инструмент хеширования SHA-256 и SHA-1

Об инструменте Генератор хешей SHA-3 и Keccak

Генератор хешей SHA-3 и Keccak вычисляет всё семейство FIPS 202 — SHA3-224, SHA3-256, SHA3-384 и SHA3-512 — плюс исходные Keccak-256 и Keccak-512 и функции с расширяемым выводом SHAKE128/SHAKE256. Введите текст в UTF-8 или переключитесь в режим hex, чтобы хешировать сырые байты, и дайджест в нижнем регистре обновляется по мере набора. Он создан для повседневной путаницы вокруг этих алгоритмов: SHA3-256 и Keccak-256 выглядят одинаково, но различаются одним байтом дополнения, а Ethereum остановился на Keccak-256 до финализации стандарта. Используйте его, чтобы вывести селектор функции Ethereum, проверить результат keccak256 в Solidity, сверить контрольную сумму SHA-3 или выбрать длину вывода SHAKE. Каждый дайджест вычисляется в вашем браузере, поэтому значения, которые вы хешируете, остаются на вашем устройстве.

Возможности

Как использовать Генератор хешей SHA-3 и Keccak

  1. Выберите алгоритм — SHA3-256, Keccak-256, SHAKE256 и другие
  2. Выберите UTF-8, чтобы хешировать текст, или Hex, чтобы хешировать сырые байты
  3. Введите или вставьте ввод; дайджест появляется мгновенно
  4. Для SHAKE задайте длину вывода в битах, затем скопируйте hex-дайджест

Пример

Ввод

algorithm: Keccak-256
input: "" (empty string)

Результат

c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470

Хеш Keccak-256 от пустой строки, на который повсюду опирается инструментарий Ethereum.

Частые ошибки и устранение неполадок

Часто задаваемые вопросы

В чём разница между SHA-3 и Keccak-256?
Они используют одну и ту же губку Keccak, но добавляют разный байт разделения доменов перед дополнением (0x06 для SHA-3, 0x01 для Keccak). Одно это различие делает их дайджесты совершенно разными, поэтому значение, хешированное SHA3-256, никогда не совпадёт с тем же значением, хешированным Keccak-256.
Почему Ethereum использует Keccak-256 вместо SHA3-256?
Ethereum принял Keccak-256 из исходной заявки Keccak до того, как NIST финализировал SHA-3 с немного иным дополнением. Чтобы сохранить совместимость, Ethereum и keccak256 в Solidity оставили исходный вариант, поэтому адреса и селекторы функций построены на Keccak-256.
Что такое SHAKE128 и SHAKE256?
Это функции с расширяемым выводом (XOF): вместо фиксированного размера вы выбираете, сколько битов дайджеста хотите. 128 и 256 обозначают их уровень стойкости, а не длину вывода, поэтому у любой из них можно запросить 128, 256, 512 или больше битов.
Как хешировать сырые байты, чтобы совпасть с вызовом keccak256 над данными, закодированными по ABI?
Переключите ввод на Hex и вставьте байты в шестнадцатеричном виде — необязательный префикс 0x и пробелы допустимы. Инструмент хеширует именно эти байты, а не их текст в UTF-8, что и ожидает keccak256 в Solidity над закодированными данными.
SHA-3 — это просто более быстрая или более надёжная версия SHA-256?
Нет. SHA-3 — это совершенно другая конструкция — губка Keccak, а не схема Меркла–Дамгора, лежащая в основе SHA-256, — выбранная как стандартизированная альтернатива. При одинаковом размере дайджеста они дают сопоставимую стойкость к коллизиям, а их выводы полностью различаются, поэтому SHA-3 не является прямой заменой.
Какую длину вывода выбрать для SHAKE?
Ориентируйтесь на то, что требует реализуемая вами спецификация. Частое значение по умолчанию — 256 бит для SHAKE128 и 512 бит для SHAKE256, но подойдёт любое положительное число битов, кратное 8 — инструмент подставляет эти значения по умолчанию и позволяет их переопределить.

Связанные инструменты

Все инструменты ArrayKit