Encryption 文件校验和中是否存在冲突?

Encryption 文件校验和中是否存在冲突?,encryption,hash,checksum,Encryption,Hash,Checksum,我正在创建一个服务,它接受一个文件作为输入,然后对该文件执行一些处理。我想创建一个文件的校验和,然后检查一个数据库,看看该文件是否已经被处理,然后从那里提取数据,而不是重新处理它 我对这个过程有几个问题 1) 我需要担心校验和冲突吗?两个文件是否可以返回相同的校验和 2) 我计划使用MD5来计算散列-有没有更快的方法?是否有其他考虑原因的算法? 1) 我需要担心校验和冲突吗? 我计划使用MD5来计算has 校验和(例如crc32)和加密散列之间存在差异。加密散列被设计成抗冲突的 这意味着使用散列

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

我对这个过程有几个问题

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

2) 我计划使用MD5来计算散列-有没有更快的方法?是否有其他考虑原因的算法?

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

校验和(例如crc32)和加密散列之间存在差异。加密散列被设计成抗冲突的

这意味着使用散列可能是最好的选择。碰撞的概率很低,可能可以忽略不计,数学上仍然高于零

我计划使用MD5来计算散列-有没有更快的方法?是否有其他考虑原因的算法?


MD5很快,但不再安全。散列已被破坏,有快速方法生成多个输入,从而产生相同的散列输出。目前用于散列的标准是sha-256(除非您使用md5作为校验和,而不考虑故意冲突,否则您可能不会有问题。尽管您应该避免被认为过时的加密原语)

您还可以包括blake2比md5快,Sha256也比md5快,这取决于风险,如果哈希匹配,接受文件后,可能需要对文件进行完整比较。