Tod*_*d R 6 java comparison checksum file platform-agnostic
有没有可靠的方法来确定两个文件是否相同?例如,两个具有相同大小和类型的文件可能是也可能不是相同的二进制文件(是的,我知道它不是一个单词).我假设比较文件的一个或两个校验和会有所帮助,但我想知道:
任何想法,建议或想法都表示赞赏!
PS这个代码是用在nix系统上运行的Java编写的,但通用或平台无关的输入是最有用的.
除非你逐字节地比较它们,否则不可能确切地知道两个文件是否相同.除非您检查集合中的每个项目,否则它类似于您无法保证集合包含或不包含给定对象的方式.
校验和基本上是哈希.它们是否足以满足您的目的取决于您的应用程序的关键任务.当然可以创建具有低冲突风险的哈希函数; 毕竟,即使在他们保护敏感数据并且您不希望在您的帐户上拥有第二个有效密码的情况下,也会对密码进行哈希处理.除非您为银行编写代码,否则强校验和算法应提供非常好的近似值.
当且仅当不同的校验和算法使用不同的散列函数时,使用多个校验和将提高可靠性.
leonbloy的回答已经解决了你的第三个问题; MD5和SHA-1很常见.
1) Very reliable
2) Not theoretically
3) SHA-1
Run Code Online (Sandbox Code Playgroud)