Closed. This question needs details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息,并通过editing this post阐明问题。
3年前关闭。
Improve this question
我面对
这是source code
我在几个在线转换器上验证了结果,它们都给出了与我不同的相同结果。
请注意,大多数(如果不是全部)在线工具基本上都是业余密码学家的业余爱好项目。期望实现过程中出现各种编码/解码问题,错误和不确定性。如果要测试实现,请使用官方的NIST测试向量。
想改善这个问题吗?添加详细信息,并通过editing this post阐明问题。
3年前关闭。
Improve this question
我面对
go
SHA3-256函数的奇怪结果:这是source code
import (
"golang.org/x/crypto/sha3"
"encoding/hex"
)
func main() {
pub, _ := hex.DecodeString("c342dbf7cdd3096c4c3910c511a57049e62847dd5030c7e644bc855acc1fd626")
h := sha3.Sum256(pub[:])
fmt.Printf("SHA3 %x\n", h)
// expected: b32562e67d3ea44ba1367ce134caac49fd305b24cde6716ad3857ac682576379
// received: 8a3ccc097f854811f4c49346da9c3bd1745d087ed539fa7817960f3e0ed8a44f
}
我在几个在线转换器上验证了结果,它们都给出了与我不同的相同结果。
最佳答案
您假设已测试的在线转换器执行十六进制解码。他们没有;它们只是采用ASCII / UTF-8 /字符串的任何值并使用该值,即,它们对文本进行哈希处理。
通过输入c342...
字符串然后输入hello
可以很容易地观察到这一点。两者都可以使用,而hello
显然不包含十六进制。另一种方法是从大写的C
而不是c
开始,这也将返回不同的结果,而十六进制解码应返回相同的字节数组,从而返回哈希值。
一个小型Java应用程序确实可以确认您的价值:
8a3ccc097f854811f4c49346da9c3bd1745d087ed539fa7817960f3e0ed8a44f
请注意,大多数(如果不是全部)在线工具基本上都是业余密码学家的业余爱好项目。期望实现过程中出现各种编码/解码问题,错误和不确定性。如果要测试实现,请使用官方的NIST测试向量。
关于go - 去郎SHA3-256提供无效的输出? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46255506/
10-10 21:31