根据文件包含的内容计算md5哈希(无文件名的手段)

问题描述 投票:0回答:1

我正在尝试根据文件内容而不是文件名来计算MD5哈希值。在下面的代码中,当对两个文件名不同但内容相同的文件计算MD5哈希值时,它会生成两个不同的MD5哈希值。我期望相同的哈希值。

代码

 def computeMD5Hash(path: String): String = {
          val buffer = new Array[Byte](8192)
          val md5 = MessageDigest.getInstance("MD5")

          val dis = new DigestInputStream(new FileInputStream(new File(path)), md5)
          try {
            while (dis.read(buffer) != -1) {}
          } finally {
            dis.close()
          }

          md5.digest.map("%02x".format(_)).mkString
        }

println(computeMD5Hash("/Users/xxxx/Documents/Project/yyy/de/src/main/resources/input/xxxxx_list_01.txt"))
   println(computeMD5Hash("/Users/xxxx/Documents/Project/yyy/de/src/main/resources/input/xxxxx_list_03.txt")) 

输出

10d34fcb95ca6714fb00dae12527be4e
651c8eaf62016182d2a39c5442a339a8

预期输出

10d34fcb95ca6714fb00dae12527be4e
10d34fcb95ca6714fb00dae12527be4e
java scala hash md5
1个回答
0
投票

尝试过您的代码,它对我有用。您确定文件相等吗?如果您将一个文件明确复制粘贴到另一位置并运行程序,是否可以正常工作?

© www.soinside.com 2019 - 2024. All rights reserved.