在 Java 中获取文件的 MD5 校验和

2022-08-31 04:17:46

我希望使用Java来获取文件的MD5校验和。我真的很惊讶,但我无法找到任何显示如何获取文件的MD5校验和的东西。

它是如何完成的?


答案 1

有一个输入流装饰器 ,因此您可以像往常一样在使用输入流时计算摘要,而不必对数据进行额外的传递。java.security.DigestInputStream

MessageDigest md = MessageDigest.getInstance("MD5");
try (InputStream is = Files.newInputStream(Paths.get("file.txt"));
     DigestInputStream dis = new DigestInputStream(is, md)) 
{
  /* Read decorated stream (dis) to EOF as normal... */
}
byte[] digest = md.digest();

答案 2

使用 Apache Commons Codec 库中的 DigestUtils

try (InputStream is = Files.newInputStream(Paths.get("file.zip"))) {
    String md5 = org.apache.commons.codec.digest.DigestUtils.md5Hex(is);
}

推荐