问题标签 [sha-3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2531 浏览

javascript - Crypto JS SHA3 在相同的输入上给出不同的输出

我们正在使用 Crypto JS SHA3 将我们的用户名和密码散列在一起。

该函数从用户名和密码的两个 html 输入字段中获取输入,将它们与盐连接起来,并对它们进行哈希处理。第一个散列成功,但是再次散列相同的输出会产生不同的结果。

这是相关代码:

控制台日志输出以下内容:

编辑:我们在另外两台设备上进行了测试,发现我们在另外两台设备上得到了正确的输出。这种行为只在我同事的手机上观察到。现在我们更加困惑了。有人知道为什么不同的设备会产生不同的输出吗?

编辑:这是一个演示问题的jsfiddle。它应该是真实的。在我们的 android 4.2.2 设备上,它读取 false & false http://jsfiddle.net/odL57wfo/2/

0 投票
1 回答
5067 浏览

php - 理解 SHA-3 Keccak 哈希算法实现的简单方法

我一直在互联网上寻找有关算法 keccak 的参考资料,但没有一个能让我理解。

这是我找到的一些链接。

有没有办法轻松理解实现或算法 keccak?是否有关于该算法的 PHP 实现的代码?

0 投票
1 回答
2088 浏览

hash - Keccak / SHA-3 的不同哈希与几个程序?

我正在开发 keccak 海绵函数,并且对哈希结果有一些奇怪的行为。

我使用 24 位(3 个字节)的字符串“abc”。http://www.di-mgt.com.au/sha_testvectors.html上的 SHA-3 测试向量表明 SHA3-512 的结果如下:

来自测试向量的 SHA3-512 b751850b1a57168a 5693cd924b6b096e 08f621827444f70d 884f5d0240d2712e 10e116e9192af3c9 1a7ec57647e39340 57340b4cf408d5aec5f308276

我还使用了 cryptopp 5.62 版,它给了我这个输出:

CryptoPP 18587dc2ea106b9a1563e32b3312421ca164c7f1f07bc922a9c83d77cea3a1e5d0c69910739025372dc14ac9642629379540c17e2a65b19d77aa511a9d00bb96

我在 Windows 上使用 HashTab 5.2.0.14,它为我提供了具有“abc”相同输出的文件:

哈希表 5.2.0.14 18587dc2ea106b9a1563e32b3312421ca164c7f1f07bc922a9c83d77cea3a1e5d0c69910739025372dc14ac9642629379540c17e2a65d9d09d77aa511a

因此,有一些参考文献,但其中之一与其他参考文献不同。网站上解释说,输入消息附加了 FIPS-202 草案中定义的 2 位“10”。那么,CryptoPP 和 HashTab 可能使用另一种实现,但是是哪一种呢?

现在我有我的程序和来自 keccak 站点的“参考代码”以及 python 中的另一个实现:

我的程序为“abc”返回这个哈希值:

我的程序 20FF13D217D5789FA7FC9E0E9A2EE627363EC28171D0B6C52BBD2F240554DBC94289F4D61CB57DF72DF08AAC4366022D5DF23E703B8FDFF6306021DB4D5E6760

这是http://keccak.noekeon.org/files.html上的 keccak 参考代码 ( http://keccak.noekeon.org/KeccakReferenceAndOptimized-3.2.zip ),它计算相同的值:

Keccak-Reference 3.2 Message of size 2040 bits with Keccak[r=1024, c=576] 20FF13D217D5789FA7FC9E0E9A2EE627363EC28171D0B6C52BBD2F240554DBC94289F4D61CB57DF72DF08AAC4366022D5DF23E703B8FDFF6306021DB4D5E6760 (truncated to the same length)

这是来自https://github.com/mgoffin/keccak-python/blob/master/Keccak.py的 python 实现,结果相同:

keccak-python Value after squeezing : 20FF13D217D5789FA7FC9E0E9A2EE627363EC28171D0B6C52BBD2F240554DBC94289F4D61CB57DF72DF08AAC4366022D5DF23E703B8FDFF6306021DB4D5E67601173D04BF5AEC3EBBCA87696355C5FB4D72D00D2CC4F843A0A3A0ED8924A16FC37769A3DB7C3A84F31E92375A7D74A0136D80A647FBC5AF8D733B43873A3709F

所以我的问题:

1) 根据 NIST 使用 FIPS 202 制定的规范,Keccak 和 SHA-3 是否具有不同的输出?

2)为什么我现在有三个不唯一的不同哈希值?

3) SHA3-512 的容量是否改变为 512 位容量和 1600-512 位速率?这是我在有关 SHA-3 的演示文稿中读到的另一个区别,但我在 FIPS-202 文档中没有找到它。

非常感谢!

问候,

布拉克

0 投票
0 回答
144 浏览

encryption - sha3算法加密和回溯

我有三个问题:

Q1:假设我有一个按 1、2、3、4 等顺序排列的事务 ID。如果我对这些交易 ID 中的每一个都使用 SHA3 算法,有没有办法在交易 ID 被加密之前弄清楚这些数字是否会按顺序(1、2、3、4 ..)和得到加密?

Q2:我可以回溯并查看加密的交易 ID 吗?

Q3:哈希码中存在什么类型的字符?

0 投票
3 回答
33610 浏览

java - 在 Java 中计算 SHA 3 哈希

我一直在使用 CryptoJS(即CryptoJS.algo.SHA3.creat())库在前端进行 SHA-3 哈希。(见http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/sha3.js

我想知道是否有任何Java库等价物?但到目前为止,我还没有找到任何东西。Java SHA-3 的例子也不多。

sun.security.Provider具有 SHA-3,但在 Eclipse 下不可见。另外,我不确定这个 sun 的 SHA-3 是否与 CryptoJS 的 SHA-3 相同。

谁能提供一些例子?

0 投票
2 回答
719 浏览

java - 如何使用 Crypto.js 在 Android 中计算 HMAC-SHA3?

我正在使用带有 64 位 JVM 的 Android Studio 1.22 和 JRE 1.8。如何将 Crypto,js 导入 Android?

我想从 HMAC 输出计算 6 位 OTP。

0 投票
2 回答
886 浏览

hash - 散列函数(例如 SHA)是否独立于平台?

我需要比较来自不同平台的散列数据。使用的哈希函数是 Keccak 的 SHA3。

我首先假设哈希生成的值是平台无关的;但后来这两个在线工具证明了我的相反:

这是我对单词数据(sha3 256bits)进行哈希处理时的相应输出:

  • 8f54f1c2d0eb5771cd5bf67a6689fcd6eed9444d91a39e5ef32a9b4ae5ca14ff
  • efda893aa850b0c0e61f33325615b9d93bcf6b42d60d8f5d37ebc720fd4e3daf

我对这个主题的了解非常有限,但我一直认为哈希函数是平台无关的(这就是我们使用 MD5 校验和的原因,对吧?)。

任何关于这个主题的光都将受到高度赞赏。

最好的。

0 投票
4 回答
6535 浏览

java - Bouncy Castle Sha3 输出错误?

我正在开发一个需要执行sha3-256哈希的 JAVA 项目。由于 Bouncy Castle 在其最新更新中实现了 Sha3,我计划使用他们的实现。这是我的代码:

运行时System.out.println(Main2.sha3(""));,我得到以下输出:

C5D2460186F7233C927E7DB2DCC703C0E500B653CA82273B7BFAD8045D85A470

当我从以下位置搜索基本 sha3 输出时:维基百科:https
://en.wikipedia.org/wiki/SHA-3 或 NIST 标准:http ://csrc.nist.gov/groups/ST/toolkit/documents/Examples/ SHA3​​-256_Msg0.pdf ,看来我应该获得:

a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a

我的代码有什么错误吗?充气城堡的输出和 NIST 的输出之间有什么联系吗?充气城堡的实施会不会有错误?

感谢您的时间和问候。

0 投票
0 回答
253 浏览

node.js - Browserify 找不到已安装的模块 sha3

我正在处理ethereumjs-lib从 npm 安装的软件包,该软件包依赖于sha3模块。但是 browserify 无法从依赖项中获取它。我sha3手动安装并编写了如下所示的简单代码,仍然 browserify 向我显示错误Cannot find module 'sha3' var unique = require('uniq'); var sha = require('sha3');

0 投票
2 回答
1624 浏览

python - pysha3没有给出正确的答案

使用以下代码,

我正进入(状态

代替

参看。https://en.wikipedia.org/wiki/SHA-3#Examples_of_SHA-3_variants

谁能给我建议?