Pet*_*ter 144

SHA-1生成的160位哈希值是否足够大以确保每个块的指纹是唯一的?假设具有均匀分布的随机散列值,n个不同数据块的集合和生成b位的散列函数,将存在一个或多个冲突的概率p受到块对的数量乘以该概率的概率的限制.给定的一对会发生碰撞.
(来源:http://bitcache.org/faq/hash-collision-probabilities)
那么,碰撞的可能性是:
1 - ((2^160 - 1) / 2^160) * ((2^160 - 2) / 2^160) * ... * ((2^160 - 99) / 2^160)
想想10个空间中2个项目发生碰撞的概率.第一个项目是唯一的,概率为100%.第二个是唯一的,概率为9/10.因此两者都是唯一100% * 90%的概率是,并且碰撞的概率是:
1 - (100% * 90%), or 1 - ((10 - 0) / 10) * ((10 - 1) / 10), or 1 - ((10 - 1) / 10)
这不太可能.你必须有更多的字符串才能成为一个遥远的可能性.
请查看维基百科上此页面上的表格; 只在行之间插入128位和256位.