我有很多文件需要排序;遗憾的是,有许多文件具有相同的名称,但内容不同,并且具有相同的内容,但文件名却不同。
我正在考虑md5sum
用于生成文件的校验和,但是我需要知道-两个不同的文件(即不同的内容)是否可能生成相同的校验和?
如果是这样,它发生的可能性有多大?
是否有可能使用两个不同的不相关(即不在同一个“家族”中)校验和程序来生成两个校验和-假设两个不同文件可能为一个校验和程序生成相同的校验和,永远不会一次发生?
2
请记住,md5 / sha2 / etc是数据的哈希,因此将很多信息映射到较小的位空间,因此可能会发生冲突。哈希不是唯一的密钥,如果这是您的目标……我强烈建议您做其他事情。
—
mdpc
对于文件排序,MD5很好。从crypto.stackexchange.com/a/18337/49945来看,两个不同内容的校验和冲突概率为2 ^ 128中的1,大约为10 ^ 43中的1。真的非常罕见。如果每微秒进行一次比较,则平均每10 ^ 20年就会发生一次碰撞。自大爆炸以来只有大约10 ^ 9年,所以发生碰撞的几率甚至只有一次,从大爆炸到现在每微秒一次的比较仍然只有十分之一。假设有1000亿台并发计算机,那么只有一个人会遇到冲突。
—
ToolmakerSteve
...虽然尚不清楚为什么对文件进行排序时会使用任何哈希算法。如果有相同名称的文件,则必须通过其他标准来识别它们;例如,文件必须有一些唯一的路径,或者某些存储设备中可能有字节偏移量?这两种方法中的任何一种都是唯一引用文件的更有用的方法。
—
ToolmakerSteve