关于java中MD5校验和计算的澄清
我使用该代码来计算java中文件的校验和 我对这项工作有点困惑,我将其应用于我的问题中,如下所示: 我有一个包含一些数据的文件。我已经使用关于java中MD5校验和计算的澄清,java,checksum,Java,Checksum,我使用该代码来计算java中文件的校验和 我对这项工作有点困惑,我将其应用于我的问题中,如下所示: 我有一个包含一些数据的文件。我已经使用 System.out.println(file1content.toString().getBytes().length); the o/p is 4096 bytes 当我尝试执行校验和代码时,我意识到正在读取的字节数是4096+12字节,这12字节是否等于文件名 我有另一个文件2,其内容与文件1相同(我知道这一点是肯定的,因为我将文本提取为字符串
System.out.println(file1content.toString().getBytes().length); the o/p is 4096 bytes
当我尝试执行校验和代码时,我意识到正在读取的字节数是4096+12字节,这12字节是否等于文件名
我有另一个文件2,其内容与文件1相同(我知道这一点是肯定的,因为我将文本提取为字符串,并将其与String.equals进行比较),但生成的校验和不同。我想知道为什么会这样
我是不是遗漏了什么
编辑1:
我使用以下循环从文件中读取数据:
InputStream fis = new FileInputStream(filename);
byte[] buffer = new byte[1024];
do {
numRead = fis.read(buffer);
System.out.println(" "+ numRead);
if (numRead > 0) {
complete.update(buffer, 0, numRead);
}
} while (numRead != -1);
fis.close();
numread的输出为:
1024
1024
1024
1024
12
-1
问候,,
Bhavya我发现了bug是什么,我不确定这是我引入的bug还是它已经存在了 我意识到从文件中读取的数据不正确,文件的某些部分被多次读取,因此我修改了代码,以便通过指定开始和结束位置从文件中获取数据 如果有人面临此问题,请让我知道我可以发布此问题的解决方案
关于,你怎么知道字节数是额外的12个?@erickson我将用这些信息编辑这个问题