【问题标题】:Should all implementations of SHA512 give the same Hash?SHA512 的所有实现都应该给出相同的哈希吗?
【发布时间】:2011-06-16 23:53:42
【问题描述】:

我正在编写一个 SHA512 函数。当我检查我在不同来源、Linux SHA512SUM 工具、几个网站上加密的文件并通过我为 SHA512 拥有的旧源代码运行它时,它们都会给出不同的哈希值。我对这个项目的想法是,如果正确实施,所有哈希算法都会输出相同的哈希值,用作校验和。我这样想错了吗?如果我错了,我将如何真正检查我的工作是否正确?

提前致谢。

【问题讨论】:

    标签: hash checksum sha512


    【解决方案1】:

    是的,这是 PKI 的基本构建块之一:传递给哈希的相同数据块应始终返回相同的哈希值。

    但请注意解释:SHA-2(512) 哈希的结果是一个 512 位的块,而不是字符串值,因此它将首先被编码以供人类使用,因此您可能会看到当只是使用不同的编码时,看起来会产生视觉上不同的结果。

    【讨论】:

    • 对于字符串“Hi There”的散列,Linux 工具将前三个数字设为“526”,而网站hash.online-convert.com/sha512-generator 的开头为“523”。这种趋势继续下去,只有两个网站同意。我正在使用的源代码使用一种二进制形式来实际显示哈希。我怎么知道该使用哪种工具?
    • 散列适用于位和字节,而不是文本,因此您必须考虑输入的解码版本。首先,尝试使用一些更相关的测试向量。通常,空字符串是一个很好的测试向量,但您可以通过简单的网络搜索找到许多其他字符串。
    • Oh, and 'Hi There', when encoded as a straight 8bit ASCII string returns the following hash (hex-encoded): 523df363aa22c25478a478d25e6945f842509df8b77b0c755a40538a9a239ae178b3225f516bdb9e29f6d1cb7de4f2cf74e67fd85f6d9817c48890d686d51838
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-03
    • 1970-01-01
    • 2013-08-07
    • 1970-01-01
    • 2020-07-18
    • 2014-07-16
    相关资源
    最近更新 更多