Хеш Keccak-256
Приватность по умолчанию — работает полностью в вашем браузере
Положите любую UTF-8 строку в поле ввода и получите 32-байтовый digest Keccak-256. Тот же алгоритм Ethereum использует повсеместно: контрольные суммы EIP-55, селекторы функций, вывод storage-слотов и адреса контрактов через CREATE2.
Keccak-256 против SHA3-256
Keccak-256 был заявкой Keccak в NIST до того, как он стал SHA3. Финальный стандарт SHA3 изменил правило padding (multi-rate padding получил два дополнительных бита), поэтому SHA3-256 и Keccak-256 одного входа отличаются. Ethereum оставил оригинальный Keccak, чтобы on-chain хеши совпадали с реализациями кошельков, индексаторов и эксплореров, которые также используют Keccak-256.
Где Ethereum его применяет
Селекторы функций — это первые 4 байта keccak256("transfer(address,uint256)") и аналогичных канонических сигнатур. Storage-слоты для маппингов выводятся из keccak256(abi.encode(key, slot)). EIP-55 чередует регистры исходя из keccak256 адреса в нижнем регистре. Адреса контрактов CREATE2 — keccak256 над deployer, salt и bytecode.
Как работает реализация
Страница везёт компактную перестановку Keccak-f[1600] на JavaScript. Web Crypto её не предоставляет. Проверить можно, сравнив с известным digest пустой строки c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470. Ввод и вывод не покидают вкладку.
Часто задаваемые вопросы
- Keccak-256 — это то же, что SHA3-256?
- Нет. Keccak-256 — то, что Keccak отправил в NIST; SHA3-256 добавил два бита padding перед финализацией. Один вход — разный результат. Ethereum и EVM используют исходный Keccak-256.
- Где он встречается в Ethereum?
- В селекторах функций, выводе storage-слотов, контрольных суммах EIP-55, детерминированных адресах CREATE2 и большинстве схем подписей с 256-битным digest.
- Как проверить реализацию?
- Похешируйте пустую строку и сравните с c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470. Любая разница означает неверный padding или алгоритм.
- Вывод детерминирован для одного и того же входа?
- Да. Keccak-256 — чистая функция. Одна и та же UTF-8 последовательность всегда даёт один и тот же digest, в любом браузере и сессии.
- Toova сохраняет мой ввод?
- Нет. Хеш считается локально в этой вкладке. Строка и digest никуда не уходят.
- Можно ли использовать это для ABI?
- Возьмите Keccak-256 от канонической сигнатуры функции, например transfer(address,uint256) — именно такой 4-байтовый префикс ожидают селекторы — и заберите первые 4 байта результата.