Java 对于不同的PDF,MD5始终相同

Java 对于不同的PDF,MD5始终相同,java,md5,Java,Md5,我需要从PDF文件计算MD5,似乎每个文件都有相同的MD5:'d41d8cd98f00b204e9800998ecf8427e' md5计算适用于:word和txt文档。它也具有与图像相同的行为。->为任何图像生成的md5与上面pdf中的md5相同 我唯一要做的就是: String md5 = DigestUtils.md5Hex(file.getInputStream()); 出于测试目的,我使用inputStream生成了一个文件,并生成了正确的文件(包含内容),因此inputStream

我需要从PDF文件计算MD5,似乎每个文件都有相同的MD5:'d41d8cd98f00b204e9800998ecf8427e'

md5计算适用于:word和txt文档。它也具有与图像相同的行为。->为任何图像生成的md5与上面pdf中的md5相同

我唯一要做的就是:

String md5 = DigestUtils.md5Hex(file.getInputStream());

出于测试目的,我使用inputStream生成了一个文件,并生成了正确的文件(包含内容),因此inputStream不是空的或什么的。

此md5对应于空字符串,请在代码中查找错误。

此md5对应于空字符串,查找代码中的错误。

如果搜索
d41d8cd98f00b204e9800998ecf8427e
,您会看到它是空字符串的MD5。由于某些原因,您的输入流没有返回任何内容。

如果搜索
d41d8cd98f00b204e9800998ecf8427e
,您会看到它是空字符串的MD5。由于某些原因,您的输入流没有返回任何内容。

d41d8cd98f00b204e9800998ecf8427e是空字符串的md5校验和


使用FileInputStream(“文件名”)作为源。

d41d8cd98f00b204e9800998ecf8427e是空字符串的md5校验和


使用FileInputStream(“文件名”)作为源。

在两个pdf上测试了它,得到了两个不同的总和。你确定你使用了两个不同的文件吗?在两个pdf上进行了测试,得到了两个不同的总和。你确定你使用了两个不同的文件吗?这似乎是不可能的,因为我可以创建一个word文档并验证正确的MD5。但是我已更改为顺序:保存文档并计算md5(md5是第二件事->因此流将是空的prob)。所以现在我在保存之前计算md5,它都工作了。但现在我真的想知道为什么它曾经与word文档一起工作。输入流不应该也是空的吗?只不过是:String filePath=“C:\\”+getFileName();copyInputStreamToFile(inputStream,新文件(filePath))@像这样的讨论是为了另一个问题,“不同PDF的MD5总是相同的”,这似乎是不可能的,因为我可以创建word文档并验证正确的MD5。但是我已更改为顺序:保存文档并计算md5(md5是第二件事->因此流将是空的prob)。所以现在我在保存之前计算md5,它都工作了。但现在我真的想知道为什么它曾经与word文档一起工作。输入流不应该也是空的吗?只不过是:String filePath=“C:\\”+getFileName();copyInputStreamToFile(inputStream,新文件(filePath))@像这样的讨论是为了另一个问题,“不同PDF的MD5总是相同”已经回答了。