【问题标题】:Calculate md5 hash based on file contains(means without filename)根据文件包含计算 md5 哈希(意味着没有文件名)
【发布时间】:2020-03-05 05:50:04
【问题描述】:

我正在尝试根据文件内容而不是文件名来计算 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

【问题讨论】:

  • 我已经完全使用了您在某些部署脚本中成功使用的功能。它是正确的。建议:尝试拨打md5 -q /Users/xxxx/Documents/Project/yyy/de/src/main/resources/input/problem_list_01.txt。输出应与您的函数输出相匹配。

标签: java scala hash md5


【解决方案1】:

尝试了您的代码,它对我有用。你确定文件是平等的吗? 如果您将一个文件显式复制粘贴到另一个位置并运行您的程序,它是否有效?

【讨论】:

  • 不幸的是,这不是一个真正的答案,而是更多的评论。一个提示:任何答案都不应该包含问题。
  • @JamesReinstateMonicaPolk 知道了
猜你喜欢
  • 2015-12-18
  • 2021-06-19
  • 1970-01-01
  • 2016-12-30
  • 2017-09-23
  • 2011-02-13
  • 2010-10-20
  • 2012-04-14
  • 1970-01-01
相关资源
最近更新 更多