Tin*_*Sun 4 php hash sha-3 cryptojs
我试图使用 cryptojs sha3 方法和 php-sha3 库获得相同的结果,但结果似乎不匹配。
一个例子:
对于 CryptoJS
var hash = CryptoJS.SHA3("qwerty", { outputLength: 224 }).toString();
Run Code Online (Sandbox Code Playgroud)
给我d7a12ecec4442f1b31eea5f7d5470f0ca6169463e09d91a147c3b8e8
而使用 PHP-SHA3
echo sha3("qwerty",224);
Run Code Online (Sandbox Code Playgroud)
给我13783bdfa4a63b202d9aa1992eccdd68a9fa5e44539273d8c2b797cd
我是一个完全的加密菜鸟,所以我猜我错过了一些基本的东西。
不幸的是,CryptoJS \'sha3\' 实际上并未使用当前的 SHA-3 标准 - 因此您的差异。该代码正在实现已被取代的 SHA-3 版本。
\n\n\n\n\n2014 年,NIST 对 Keccak 提交的内容进行了轻微修改,\n 发布了 FIPS 202,该标准于 2015 年 8 月\n 成为官方 SHA-3 标准。
\n
引用自此来源:
\n\nhttps://medium.com/@ConsenSys/are-you-really-using-sha-3-or-old-code-c5df31ad2b0
\n\n其中接着说:
\n\n\n\n不幸的是,Github 中的自述文件没有提及,用户必须查看旧站点才能找到 \xe2\x80\x9c 注意:当我将此实现命名为 SHA-3 时,我犯了一个错误。它应该被命名为 Keccak。\xe2\x80\x9d 因此,使用 sha3 的 CryptoJS 的任何\n 依赖项都使用旧代码,\n 用 Keccak 这样的术语可以更好地描述这些代码。另外,请注意在线 sha3\n 计算器,因为其中一些计算器尚未更新为 SHA-3。
\n