我正在创建一个服务,该服务接受文件作为输入,然后对该文件执行一些处理。我想创建该文件的校验和,然后检查数据库以查看该文件是否已被处理,然后从那里提取数据,而不是重新处理它。
我对此过程有一些疑问。
1)我是否需要担心校验和冲突?又名-两个文件能否返回相同的校验和?
2)我正计划使用MD5来计算哈希-有没有更快的方法呢?有其他原因我应该考虑使用算法吗?
答案 0 :(得分:2)
1)我是否需要担心校验和冲突? 我正在计划使用MD5计算has
校验和(例如crc32)和加密哈希之间存在差异。密码哈希被设计为具有抗冲突性。
这意味着使用哈希可能是您最好的选择。碰撞的可能性非常低,可能可以忽略,在数学上仍高于零。
我正计划使用MD5来计算哈希-是否有更快的方法来做到这一点?有其他原因我应该考虑使用算法吗?
MD5很快,但是不再安全了。哈希已被破坏,并且有快速的方法可以产生多个输入,从而产生相同的哈希输出。当今用于散列的标准是sha-256(直到您将md5用作不涉及故意冲突的校验和,您可能还可以。不管您应避免使用被认为已过时的加密原语)