3

如果您有两个二进制 blob,x并且y. 然后将它们散列在一起,假设使用SHA-512. 入侵者知道y,反转哈希值容易多少?

是否有关于与成为问题之前相比有多大y和可以比较的指导方针?x这有关系吗?

4

2 回答 2

3

如果您使用的是加密强哈希(如 SHA-512 或新的 SHA3,但不是像 MD4 这样的损坏哈希),那么破解的难度hash(x || y)(其中||表示连接)至少与已知hash(x)时破解一样困难。y在许多情况下,添加已知y值很有用:

  • 使用随机数y作为盐,因此对相同的两个xs 进行散列会产生不同的结果
  • 添加一个长填充字符串以减慢哈希计算以阻止暴力破解(这也可以通过多次迭代哈希来实现)
  • 作为创建一次性共享密钥的随机数

这些方案的安全性取决于上述破解难度hash(x || y)

于 2013-08-03T00:46:17.620 回答
1

没有比hash(x)它本身更强大的了。强度取决于您使用的散列算法,即如果入侵者知道您如何组合这两个值,并且他知道y,强度并不比您刚刚遗漏的情况更好y

于 2013-08-03T00:36:42.400 回答