代码之家  ›  专栏  ›  技术社区  ›  Dave Sag

有没有一个SHA可以保证产生一个唯一的散列?

  •  1
  • Dave Sag  · 技术社区  · 6 年前

    我的理解是 SHA-512 样式算法,给定一个保证是唯一的输入字符串,并不能保证产生一个也保证是唯一的哈希值。

    更具体地说,nodejs10.9或更高版本是否支持这种现成的算法

    2 回复  |  直到 6 年前
        1
  •  1
  •   Janith    6 年前

    SHA-512散列的长度是64字节(512位)长,即10 值的组合。所以它获得相同哈希值的机会非常小(我的意思是非常小)。

    它是多么的少,想想太阳的重量,从克计算(它的重量是耳朵的百万倍)。如果有其他行星重量10 154 即使几百万个太阳加起来也不能等于这个量。

    所以说得很少,就意味着永远不会。甚至比特币地址也在使用这种方法作为钱包地址。如果你有机会找到一个组合,你将成为亿万富翁。我保证

    enter image description here

        2
  •  1
  •   Catalyst    6 年前

    你可以用 crypto.getHashes() 查看可用的哈希值并选择所需的哈希值。你要求的是独特性,而不是安全性,所以越快越好。

    这个答案也与此相关: When using SHA-256 hashes as a primary key, is it OK to ignore the possibility of collisions?

    推荐文章