UFOZoo

在线Keccak-256加密 - 以太坊智能合约哈希引擎

Keccak-256 哈希计算器,以太坊智能合约的原生哈希引擎。EIP-191 消息签名核心算法,使用原始 Keccak 填充。64 位十六进制。

功能特性

  • 在线计算 Keccak-256 哈希值 — 以太坊智能合约的原生哈希引擎
  • 实时 256 位哈希计算,64 位十六进制输出
  • 一键复制、保存为 .txt 文件,支持大小写模式
  • 由于原始填充方案不同,输出与 SHA3-256 不同
  • 支持 Keccak-256 校验和比对
  • 100% 浏览器端运行——以太坊开发者和 Web3 构建者的必备工具
  • 以太坊函数选择器计算 — Keccak-256('transfer(address,uint256)') 的前 4 字节即为 EVM 中的方法 ID
  • 实时输入长度显示 — 智能合约开发时字符数和字节数与哈希同步展示
  • 跨平台浏览器访问 — 无需本地以太坊工具链,任何设备均可开发和验证哈希
  • 会话历史 — 保留本次哈希结果,便于比较多个合约签名

使用方法

  1. 1在上方输入框中输入或粘贴文本。
  2. 2哈希摘要即时显示,无需刷新页面。
  3. 3切换大小写按钮改变十六进制输出格式。
  4. 4点击复制图标将哈希值复制到剪贴板,或使用保存保存为 .txt 文件。
  5. 5在校验栏粘贴预期哈希值进行比对。
  6. 6如何计算以太坊函数选择器:输入函数签名如 'transfer(address,uint256)',取 Keccak-256 哈希的前 4 字节(8 十六进制字符)即为每笔以太坊交易中使用的方法 ID。
  7. 7如何验证 EIP-191 消息签名:对添加前缀后的消息计算 Keccak-256 哈希,与签名消息格式中的预期摘要比对。
  8. 8如何为智能合约存储生成哈希:当链下数据需要匹配链上存储时,用此工具计算其 Keccak-256 哈希,与合约存储映射键比较。
  9. 9如何生成默克尔树叶节点哈希:对于 Merkle 空投或 NFT 白名单,用 Keccak-256 对每个地址或申领数据进行哈希得到叶节点。
  10. 10如何检查以太坊地址校验和:将地址(不含 0x)粘贴到输入框。EIP-55 校验和使用 Keccak-256 的变体判断十六进制字符的大小写。

常见问题

什么是 Keccak-256,与 SHA3-256 有何不同?

Keccak-256 是提交给 NIST SHA-3 竞赛的原始 Keccak 算法。SHA3-256 是 NIST 标准化版本,修改了填充方案。这意味着 Keccak-256('abc') 和 SHA3-256('abc') 产生不同的哈希值。以太坊专门使用原始 Keccak-256,而非 SHA3-256。

以太坊如何使用 Keccak-256?

以太坊使用 Keccak-256(Solidity 中常误称为 SHA3):(1) 从方法签名计算函数选择器,(2) 智能合约存储哈希,(3) EIP-191 消息签名,(4) Merkle Patricia 树节点。每笔以太坊交易都涉及 Keccak-256。

以太坊为什么不用标准 SHA3-256?

以太坊于 2014 年设计,早于 NIST 2015 年定稿 SHA-3 标准。以太坊社区采用了原始 Keccak 提交,并选择不通过切换到 SHA3-256 来破坏向后兼容性。

Keccak-256 虽然不是标准 SHA3,但安全吗?

安全。Keccak-256 与 SHA3-256 的唯一区别是填充规则——核心 Keccak-f 置换完全相同。原始 Keccak 填充实际上更简单,没有已知的攻击利用这种差异。

何时使用 Keccak-256 而非 SHA3-256?

在使用以太坊智能合约、Web3 开发或任何明确要求 pre-NIST Keccak 变体的系统中使用 Keccak-256。其他场景使用 SHA3-256,特别是需要 NIST 合规时。

什么是函数选择器,Keccak-256 如何创建它?

函数选择器是函数签名 Keccak-256 哈希的前 4 字节(8 十六进制字符)。例如 Keccak-256('transfer(address,uint256)') 以 'a9059cbb' 开头——这个 4 字节前缀就是每笔 ERC-20 转账交易中使用的选择器。

Keccak-256 能被逆向吗?

不能。与所有密码学哈希函数一样,Keccak-256 是单向的——无法从哈希重建输入。但由于以太坊函数签名已知,可以建立将选择器映射回签名的查找表。

Keccak-256 输出尺寸?

Keccak-256 产生 256 位(32 字节)哈希,显示为 64 个十六进制字符。它是 Keccak 家族的一员,可以产生任意输出尺寸(Keccak-224、Keccak-256、Keccak-384、Keccak-512)。

Keccak-256 用于以太坊之外吗?

是的。用于其他区块链平台(一些 L2、侧链)、需要 pre-NIST Keccak 的密码学协议以及暴露原始 Keccak 变体的某些 SHA-3 实现。

Keccak-256 与 Keccak-f 置换有何关系?

Keccak-256 使用 Keccak-f[1600] 置换(1600 位状态)和特定容量设置。置换是一种吸收输入并挤压输出的海绵结构。SHA3-256 使用完全相同的置换,只是填充不同。

Keccak-256 和简单 XOR 校验和有何不同?

Keccak-256 是设计为抗碰撞和单向的密码学哈希。XOR 校验和易被逆向或伪造。Keccak-256 需 2^128 次操作才能暴力找到碰撞。

能用 Keccak-256 从私钥计算以太坊地址吗?

本工具计算任意文本输入的 Keccak-256 哈希。以太坊地址通过对公钥的 Keccak-256 哈希取后 20 字节得到。需要输入未压缩公钥才能得到地址哈希。

相关工具