gpt4 book ai didi

java - 判断文件是否重复

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:57:29 25 4
gpt4 key购买 nike

有没有可靠的方法来确定两个文件是否相同?例如,两个具有相同大小和类型的文件在二进制上可能相同也可能不同(是的,我知道这不是一个真正的词)。我假设比较文件的一两个校验和会有所帮助,但我想知道:

  1. 校验和在确定两个文件不同;两个不同文件具有相同校验和的可能性有多大?
  2. 可靠性会增加吗应用额外的校验和比较?
  3. 将采用哪种校验和算法最有效和/或最可靠?

如有任何想法、建议或想法,我们将不胜感激!

附言此代码是用在 nix 系统上运行的 Java 编写的,但通用或平台不可知的输入最有帮助。

最佳答案

除非逐字节比较,否则无法确定两个文件是否相同。这类似于您无法保证集合包含或不包含给定对象,除非您检查集合中的每个项目。

校验和基本上是一个散列。它们是否足以满足您的目的取决于您的应用程序的关键任务。创建一个碰撞风险低的散列函数当然是可能的;毕竟,密码是散列的,即使在它们保护敏感数据并且您不想在您的帐户上使用第二个有效密码的情况下也是如此。除非您正在为银行编写代码,否则强大的校验和算法应该提供非常好的近似值。

当且仅当不同的校验和算法使用不同的哈希函数时,使用多个校验和才能提高可靠性。

leonbloy 的回答已经解决了你的第三个问题; MD5 和 SHA-1 很常见。

关于java - 判断文件是否重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2812872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com