encryption - 文件校验和中是否存在冲突?
问题描述
我正在创建一个接受文件作为输入的服务,然后对该文件执行一些处理。我想创建文件的校验和,然后检查数据库以查看该文件是否已被处理,然后从那里提取数据而不是重新处理它。
关于这个过程,我有几个问题。
1)我需要担心校验和冲突吗?AKA - 两个文件可以返回相同的校验和吗?
2)我打算使用 MD5 来计算哈希 - 有没有更快的方法来做到这一点?由于其他原因,我应该考虑哪些算法?
解决方案
1)我需要担心校验和冲突吗?我打算使用 MD5 来计算 has
校验和(例如 crc32)和加密哈希之间是有区别的。加密散列被设计为抗冲突。
这意味着使用哈希可能是您拥有的最佳选择。碰撞的概率非常低,可能可以忽略不计,在数学上仍然高于零。
我打算使用 MD5 来计算哈希 - 有没有更快的方法来做到这一点?由于其他原因,我应该考虑哪些算法?
MD5 很快,但不再安全。哈希已被破坏,并且有快速方法可以生成多个输入,从而产生相同的哈希输出。今天用于哈希的标准是 sha-256(直到您使用 md5 作为校验和而不涉及故意冲突,您可能没问题。无论如何您应该避免被认为已过时的加密原语)
推荐阅读
- php - 自动加载 - 致命错误:未捕获错误:类
- angularjs - Angular树控制----过滤树的节点
- angularjs - 我如何在函数外部获得响应,内部函数响应获取
- opencv - 移除影响图像的照明形状以保留特征
- nginx - 无法让 Nginx 在同一根目录的不同位置工作
- python - 如何使用 python 访问 Gerrit Rest API
- php - 当我尝试使用 set_error_handler 时,Laravel 出现 unserialize() 错误
- pdf - 如何在 PowerBuilder 中动态创建 PDF 文档?
- javascript - jQuery:c.replace 不是函数
- azure-active-directory - 如何获取已登录用户的 Azure AD objectid?