我可以使用部分MD5哈希进行数据识别吗?

sha*_*oth 9 language-agnostic hash md5

我使用MD5哈希来识别源不明的文件.这里没有攻击者,所以我不在乎MD5已被破坏,人们可能会产生冲突.

我的问题是我需要提供日志记录,以便更容易诊断出不同的问题.如果我将每个哈希记录为十六进制字符串太长,不方便而且看起来很难看,所以我想缩短哈希字符串.

现在我知道仅仅占用GUID的一小部分是一个非常糟糕的主意 - GUID被设计为独特的,但其中一部分不是.

MD5的情况也是如此 - 我可以说MD5的前4个字节并假设由于与原始哈希相比减少了字节数,我只能获得更高的冲突概率吗?

And*_*nck 8

简短的回答是肯定的,你可以使用前4个字节作为id.但要注意生日悖论:

http://en.wikipedia.org/wiki/Birthday_paradox

添加更多文件时,碰撞风险会迅速增加.有了50.000,大约有25%的可能性会导致身份碰撞.

编辑:好的,只需阅读您的其他问题的链接和100.000文件,碰撞的几率约为70%.