如果您有两个二进制 blob,x
并且y
. 然后将它们散列在一起,假设使用SHA-512
. 入侵者知道y
,反转哈希值容易多少?
是否有关于与成为问题之前相比有多大y
和可以比较的指导方针?x
这有关系吗?
如果您使用的是加密强哈希(如 SHA-512 或新的 SHA3,但不是像 MD4 这样的损坏哈希),那么破解的难度hash(x || y)
(其中||
表示连接)至少与已知hash(x)
时破解一样困难。y
在许多情况下,添加已知y
值很有用:
y
作为盐,因此对相同的两个x
s 进行散列会产生不同的结果这些方案的安全性取决于上述破解难度hash(x || y)
。
没有比hash(x)
它本身更强大的了。强度取决于您使用的散列算法,即如果入侵者知道您如何组合这两个值,并且他知道y
,强度并不比您刚刚遗漏的情况更好y
。