【问题标题】:how to know hashing algortihm from string如何从字符串中了解哈希算法
【发布时间】:2022-01-25 12:46:45
【问题描述】:

假设我有一个像 A2E8609807F05ADCCF127D9FB376ACCD 这样的字符串,我认为它是一个散列值或加密值。我们如何检查它的哈希类型有什么办法吗?是否有任何网站对其进行检查或具有大量哈希值?

谢谢

【问题讨论】:

    标签: hash cryptography


    【解决方案1】:

    如果字符串是从安全加密散列函数创建的,则无法确定用于散列它的算法。那是因为安全散列函数的输出与随机无法区分,所以你根本无法判断它是否是由散列函数产生的。

    例如,如果我告诉您其中一个输出是由 SHA-256 产生的,另一个是由 BLAKE2b-256 产生的,那么除非您能猜出输入(在这种情况下,我已经简化了):

    ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
    bddd813c634239723171ef3fee98579b94964e3bb1cb3e427262c8c068d52319
    

    如果您知道长度,您可以在某些情况下猜测可能使用了哪个哈希函数。例如,256 位输入必须来自长度为 256 位的散列函数,或者更长且被截断的散列函数。但它也可能只是来自 CSPRNG。

    如果您的目标是查看哈希值是否是常用函数的常用输入之一,那么有些网站会这样做。例如,this website 将查找一个 MD5 哈希,如果它是一个公共输入,但如果它是一个高熵输入,它在计算上是不可行的。另请注意,MD5 不安全,不应使用。

    【讨论】:

      猜你喜欢
      • 2011-04-26
      • 2012-07-12
      • 1970-01-01
      • 2015-10-27
      • 2013-08-28
      • 2019-04-04
      • 2015-05-19
      • 2012-02-22
      • 2012-01-26
      相关资源
      最近更新 更多