Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于java中MD5校验和计算的澄清_Java_Checksum - Fatal编程技术网

关于java中MD5校验和计算的澄清

关于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相同(我知道这一点是肯定的,因为我将文本提取为字符串

我使用该代码来计算java中文件的校验和

我对这项工作有点困惑,我将其应用于我的问题中,如下所示:

我有一个包含一些数据的文件。我已经使用

  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我将用这些信息编辑这个问题