2

我想只使用 SHA256,然后只使用结果的前两个字节。这种方法有什么问题吗?

注意:这里关注的不是恶意攻击,而是确保对随机位翻转提供最佳保护。

4

1 回答 1

2

任何满足严格雪崩标准的哈希(即,如果输入中的任何位被翻转,输出中的每个位都将以 50% 的概率被翻转)可以以这种方式使用,并且包括每个加密哈希常用,包括 SHA512。使用非常短的散列存在安全隐患,但如果它们真的不相关,正如您所声称的,您可以自由选择可用的最快散列(可能是 MD5)。

但是,由于短散列特别容易受到生日悖论的影响,因此无论如何都要考虑使用更长的散列。如果您生成的哈希值如此之多,以至于 16 位与 256 位比较重要,那么即使没有恶意攻击者,您也会遇到重复。

于 2013-04-04T20:40:23.883 回答