什么是在openssl中生成16位哈希值的最佳加密哈希函数?

时间:2013-04-04 20:05:25

标签: c openssl sha sha256 cryptographic-hash-function

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

注意:此处的问题不是恶意攻击,而是确保针对随机位翻转提供最佳保护。

1 个答案:

答案 0 :(得分:2)

任何满足strict avalanche criterion的哈希(即,如果在输入中翻转任何位,输出中的每个位都将以50%的概率翻转)可以这样使用,并且包括常用的每个加密哈希,包括SHA512。使用非常短的哈希值有安全隐患,但如果它们真的不相关,正如您声称的那样,您可以自由选择最快的哈希值(可能是MD5)。

尽管短暂的哈希特别容易受到生日悖论的影响,但无论如何都要考虑使用更长的哈希值。如果你生成了16位而不是256位的那么多哈希值很重要,那么即使没有恶意攻击者,你也会重复攻击。