显然,由于SHA-1散列每次出现有限数量的可能哈希值时会产生40个字符 – 有没有人确切地知道有多少?
解决方法
SHA-1哈希有160位,所以2160.
(2160 = 1461501637330902918203684832716283019655932542976~ = 1.46 x 1048)
(2160 = 1461501637330902918203684832716283019655932542976~ = 1.46 x 1048)
请注意,由于消息空间比可能的哈希值大得多,因此必然会发生冲突.
另请注意,碰撞的概率远高于您的想象.由于Birthday paradox,在仅280条消息中,碰撞的概率为50%.(即:仅有23个人,2个人拥有相同生日的概率为50%).