SHA-1的输出是否有可能以零字节结束?

时间:2015-11-28 21:17:41

标签: python cryptography sha1

sha1哈希是否有可能以零字节结束?

Python代码

hash = haslib.sha1();
hash.update(STRING THAT RESULTS IN ZERO BYTES);
if hash.digest().endswith('\x00\x00\x00'):
....

1 个答案:

答案 0 :(得分:1)

是的,因为散列函数输出应该是均匀分布的,所以获得任何支持输出的概率都非零。将最后24位(3字节)视为零的机会是1.0/(2**24)5.9 * 10-8。平均而言,您必须尝试使用​​2 23 随机字符串来查找具有此属性的字符串。由于散列非常快,所以这不应该花费几分钟(尽管Python一般来说可能有点慢)。