SHA512 的所有实现都应该给出相同的哈希值吗?
我正在编写 SHA512 函数。当我检查在不同来源、Linux SHA512SUM 工具、几个网站上加密的文件,并通过我拥有的 SHA512 旧源代码运行它时,它们都会给出不同的哈希值。我对这个项目的想法是,如果正确实现,所有哈希算法都将输出相同的哈希值,以用作校验和。我这样想有错吗?如果我错了,我该如何检查我的工作是否正确?
提前致谢。
I am working on writing a SHA512 function. When i check the file I am encrypting on different sources, a Linux SHA512SUM tool, a couple websites, and run it through the old source code i have for SHA512, they all give different hash values. My thought going into this project is that all Hash algorithms will output the same hash value if implemented correctly, to be used as a check sum. Am I wrong in thinking this? If I am wrong how would I really check to see if my work is correct?
Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,这是 PKI 的基本构建块之一:传递给哈希的相同数据块应始终返回相同的哈希值。
不过,请注意解释:SHA-2(512) 哈希的结果是一个 512 位的块,而不是字符串值,因此它首先会被编码以供人类使用,因此您可能会看到视觉上的样子当只是使用不同的编码时,会得到不同的结果。
Yes, that's one of the basic building block of PKI: the same data block passed to a hash should always return the same hash value.
beware of the interpretation, though: the result of a SHA-2(512) hash is a block of 512 bits, not a string value so it will first be encoded for human consumption and it is therefore possible that you see what looks like visually different results when it's simply a matter of using different encodings.