Java验证文件

时间:2011-12-05 13:47:13

标签: java md5 hashcode

目前,我有一台服务器,2个客户端可以连接。这两个客户端都在其HDD上有一个文本文件,一旦启动就会被程序读取。此文本文件应在两个客户端上包含完全相同的数据(它只是纯文本)(应由服务器验证),否则服务器可能无法为客户端提供服务。

我想知道如何正确地做到这一点。我该怎么办?计算哈希码,或者使用MD5 / SHA1 / SHA2这样的东西?我应该先读取文件并在创建的对象上计算哈希码,还是直接在文件上计算MD5?

由于

2 个答案:

答案 0 :(得分:0)

您可以使用Apache Commons中的DigestUtils轻松计算文件的哈希值。它有很好的计算哈希的方法,如MD5或SHA1。然后只比较每个客户端的文件哈希值。

另外,您应该知道,确切的哈希值并不能保证文件完全相同。鉴于它们的哈希相等,文件不相同的情况非常罕见。但是,根据您的应用程序中此确定是否至关重要,您可能必须在哈希等于确认它们具有确切数据时逐字节地比较这些文件。

答案 1 :(得分:0)

真的,非常确定,您必须将两个文本文件的内容传输到服务器并将它们作为字符串进行比较。

出于所有实际目的,您可以计算哈希码并在服务器上比较该值。看看apache commons中的FileUtil类。它定义了一个checksumCRC32(File file)方法,可用于计算文件的校验和。如果两个文件的校验和相等,则可以假定内容相等。尽管如此,它们不同的概率是1/2 ^ 32。