当前位置: 首页 > 知识库问答 >
问题:

MD5sum计算不正确

林冥夜
2023-03-14

我正在尝试匹配从服务器下载的文件的md5sum。只有当总和匹配时,处理才会继续。

try {
      MessageDigest digest = MessageDigest.getInstance("MD5");
      File f = new File(fileName);
      InputStream is = new FileInputStream(f);              
      byte[] buffer = new byte[8192];
      int read = 0;
      while( (read = is.read(buffer)) > 0) {
          digest.update(buffer, 0, read);
      } 
      is.close();
      byte[] md5sum = digest.digest();
      BigInteger bigInt = new BigInteger(1, md5sum);
      output = bigInt.toString(16);
      System.out.println("MD5: " + output);
  } catch(IOException e) {
      throw new RuntimeException("Unable to process file for MD5", e);
  } catch (NoSuchAlgorithmException e) {
    e.printStackTrace();
  }

上面的代码并没有每次为某些文件正确提供md5sum。

当我去控制台检查md5sum时

下载文件的vimdiff未提供任何差异。。下载后的文件是正确的。

我无法在上述代码中看到问题。

我正在尝试更改缓冲区大小。但没有运气,所以我猜这不是因为缓冲区大小等。

 byte[] buffer = new byte[8192];

问候Dheeraj Joshi

共有1个答案

廉子民
2023-03-14

BigInteger.to字符串方法将转义前导0,因为它们并不重要。

BigInteger。toString方法正在删除前导0

 类似资料:
  • MD5sum 本软件是一个非常好用的WEB文件MD5生成和验证的模块。 站点所有文件的计算MD5值,并保存在一个文件中。然后以后可以手动或者crontab,监控程序等定期对保存文件中的文件生成md5值和已有的md5值对比,如果发现值对不上,则说明文件被篡改了。 使用说明: 1、初始化生成网站验证md5文件: use MD5Check;## 初始化目录md5值,参数为要监控的目录 my $m

  • 我本以为GridPane会根据该列中所有元素的最大首选宽度计算每个列的默认宽度。然而,在我的代码中,它似乎计算的宽度太小,导致列中的一个标签被剪切。 下面是我的“cashflowform.fxml”: 这就是我设置舞台的方式(注意我没有设置任何大小,所以我让它自己计算大小): 结果: 正如你所看到的,第一列太小了,无法完全显示我的“安默空”标签。为什么会这样,解决这个问题的最好方法是什么? PS:

  • 我有这个模式 列表表 [{“movie_id”:100,“gene1”:“犯罪”,“计数”:1,“id”:100},{“movie_id”:141267,“gene1”:“犯罪”,“计数”:1,“id”:141267},{“movie_id”:207932,“gene1”:“犯罪”,“计数”:1,“id”:207932},{“movie_id”:238636,“gene1”:“惊悚”,“计数”:1

  • 我得到以下错误:可能未处理的承诺拒绝(id:0:网络请求失败)有时错误id更改为id:3。有人能帮我吗? 从“React”导入React,{useState,useEffect};从“React-Native”导入{SafeAreaView,StyleSheet,Image,AsyncStorage}; 从“../components/SpotList”导入SpotList; 从“../asset

  • 预期成果:266.66 代码:

  • 公共静态无效字(字符串文本){int numWords=1; 字符串“是this_one_long_word还是几个???你觉得怎么样??太多“应该打印10个字和”!这使用periods.as.word.delimiters,可能很棘手。“应该打印10个单词。 描述如下:一个单词是由一个或多个字符组成的序列,由空格或句子终止符(句号、冒号、分号、问号、感叹号)分隔,无论它是否为实际的英语单词。空白