SHA-3(Keccak)哈希计算工具(免费)

免费工具:在浏览器中实时计算输入字符串的 SHA-3(Keccak)哈希值。SHA-3 是 NIST 于 2012 年标准化的下一代哈希函数,采用了与 SHA-2 根本不同的"海绵结构"。

已复制!

SHA-3 杂凑计算是什么

SHA-3 杂凑计算是指将输入的字符串转换为256位元(32位元组)的固定长度数据。SHA-3 是 NIST 于2012年标准化的最新世代杂凑函数,相同输入永远得到相同杂凑值,另一方面由杂凑值反推原始字符串在计算上不可能,具有所谓的「单向性」。本工具只需在输入栏输入字符串,即会在浏览器上即时计算 SHA-3 杂凑值。

SHA-3 最大的特点,在于采用了与 SHA-2(SHA-256、SHA-512 等)根本不同的「海绵结构」设计。即使将来 SHA-2 被发现某种脆弱性,由于设计原理不同,一般认为影响也难以波及 SHA-3,因此它被定位为密码学上的「保险」。计算全部在浏览器内完成,输入的字符串不会送往服务器。

SHA-3 杂凑计算的使用方法

  1. 输入想杂凑化的字符串 在输入栏输入密码或文件内容等,想求取杂凑值的字符串。
  2. 确认 SHA-3 杂凑值的显示 输入的同时,256位元的 SHA-3 杂凑值会以十六进位字符串即时显示。
  3. 视需要复制 按下「复制」按钮即可将显示中的杂凑值复制到剪贴板。可直接贴入程式的测试码或对照用途。

用好本工具的小技巧

  • SHA-3 由 Keccak 算法演变而来,通过 NIST 2007—2012 年竞赛选出,输出 256 位。
  • SHA-2 采用 Merkle-Damgård 构造,SHA-3 则采用全新的海绵构造(Sponge Construction)。
  • 目前无已知安全漏洞;若与现有系统兼容,优先推荐 SHA-256,新设计可考虑 SHA-3。
  • Ethereum 内部使用的是 Keccak-256,与标准化后的 SHA-3 存在微妙差异(填充方式不同)。
  • 海绵构造非常适合硬件实现,同时也是任意长度输出函数 SHAKE128/SHAKE256 的基础。

SHA-3 杂凑计算派上用场的场合

新系统中杂凑函数的验证

在考虑于即将设计的系统采用 SHA-3 时,可在浏览器上立即确认实际输出值,并与实作代码的输出相互核对。

理解使用 Keccak 系杂凑的规格

在调查如 Ethereum 这类采用自有 Keccak-256 的规格时,实际动手比较其与 NIST 标准 SHA-3-256 的输出差异,会很有帮助。

作为密码学学习与演算法比较的教材

若想比对同一输入下 SHA-3 与 SHA-2 系的杂凑值差异有多大,可在多重杂凑一次计算工具中并列确认,理解会更深入。

作为与 SHA-256 分别使用的判断依据

在犹豫是否该以与既有系统的相容性为优先而采用 SHA-256 时,可先实际产生两者的杂凑值,确认要记载于规格书的格式。SHA-256 的计算请使用SHA-256 杂凑计算工具。

SHA-3 的相关术语

SHA-3
NIST 于2012年标准化的杂凑函数名称,内部采用 Keccak 演算法。定义有224、256、384、512位元四种输出长度,本工具使用256位元输出。
Keccak
由比利时的研究者团队所设计、在 NIST 的 SHA-3 竞赛中获选的演算法。SHA-3 这个名称是 NIST 标准化之后的称呼,Keccak 本身则指涉在此之前即已存在的更广泛概念。
海绵结构
将输入数据「吸收」进内部状态,再依需要的长度「挤出」输出的 SHA-3 设计方式。与 SHA-2 采用的 Merkle–Damgård 结构不同,形成了针对 SHA-2 的攻击手法难以直接套用的结构性差异。
抗碰撞性
指两个不同输入不易产生相同杂凑值的性质。SHA-3 现阶段尚未发现可实用地找出碰撞的攻击方法,可安全用于数位签章与数据篡改侦测。
与 SHA-2 的差异
SHA-2(SHA-256、SHA-512 等)与 SHA-3 名称相似,但内部结构截然不同,属于不同系统的演算法。NIST 并非以取代 SHA-2 为目的,而是要求设计出 SHA-2 将来若被攻破时的替代方案。
单向杂凑函数
指由某个输入计算输出(杂凑值)很容易,但由输出反推输入在计算上不可能的函数。SHA-3 亦具备此性质,因此可安全用于密码的对照等用途。

常见问题

两者目前均安全可靠。与现有系统兼容时推荐 SHA-256;新设计若希望采用独立设计的算法,可选择 SHA-3。

不同。Ethereum 在 NIST 标准化之前就采用了 Keccak,填充方式不同,因此相同输入会产生不同的哈希值。计算 Ethereum 地址需使用专用的 Keccak 实现。

不能。SHA-3 是单向哈希函数,在计算上无法从哈希值逆推出原始数据,因此可安全用于密码验证和数据完整性校验。
工具君

闲话 ― Keccak 的诞生与 NIST 竞赛

2006 年前后,SHA-1 碰撞攻击的可行性逐渐显现,NIST 决定面向全球征集下一代哈希标准,并于 2007 年正式启动竞赛。共有 64 个算法参赛,历经多轮评审,2012 年最终选出由 Joan Daemen(AES 联合设计者)领衔的 Keccak 算法。

需要特别指出的是,SHA-3 的设计初衷并非取代 SHA-2,而是作为"万一 SHA-2 被破解时的备选方案"。两者基于截然不同的设计理念,从而降低了同时被攻破的风险。

海绵构造的一大优势是可扩展性——在此基础上衍生出了支持任意输出长度的 SHAKE128 和 SHAKE256(可扩展输出函数,XOF),极大地拓展了哈希函数的应用场景。