首页 > 解决方案 > 文件校验和中是否存在冲突?

问题描述

我正在创建一个接受文件作为输入的服务,然后对该文件执行一些处理。我想创建文件的校验和,然后检查数据库以查看该文件是否已被处理,然后从那里提取数据而不是重新处理它。

关于这个过程,我有几个问题。

1)我需要担心校验和冲突吗?AKA - 两个文件可以返回相同的校验和吗?

2)我打算使用 MD5 来计算哈希 - 有没有更快的方法来做到这一点?由于其他原因,我应该考虑哪些算法?

标签: encryptionhashchecksum

解决方案


1)我需要担心校验和冲突吗?我打算使用 MD5 来计算 has

校验和(例如 crc32)和加密哈希之间是有区别的。加密散列被设计为抗冲突。

这意味着使用哈希可能是您拥有的最佳选择。碰撞的概率非常低,可能可以忽略不计,在数学上仍然高于零。

我打算使用 MD5 来计算哈希 - 有没有更快的方法来做到这一点?由于其他原因,我应该考虑哪些算法?

MD5 很快,但不再安全。哈希已被破坏,并且有快速方法可以生成多个输入,从而产生相同的哈希输出。今天用于哈希的标准是 sha-256(直到您使用 md5 作为校验和而不涉及故意冲突,您可能没问题。无论如何您应该避免被认为已过时的加密原语)


推荐阅读