当前位置:  开发笔记 > 编程语言 > 正文

如何使用CryptoJS计算blob的md5校验和

如何解决《如何使用CryptoJS计算blob的md5校验和》经验,为你挑选了1个好方法。

使用Blob API以块的形式上传文件.在这里,我想检查blob的md5校验和.当我尝试下面的代码时,它对文本文件工作正常,但它为二进制文件返回不同的值.

var reader = new FileReader();
reader.readAsBinaryString(blob);
reader.onloadend = function () {
    var mdsum = CryptoJS.MD5(reader.result);
    console.log("MD5 Checksum",mdsum.toString());
};

如何为所有类型的文件正确计算blob的md5校验和?



1> Dmitri Pavlu..:

使用以下代码创建正确的md5哈希:

  function calculateMd5(blob, callback) {
    var reader = new FileReader();
    reader.readAsArrayBuffer(blob);
    reader.onloadend = function () {
      var wordArray = CryptoJS.lib.WordArray.create(reader.result),
          hash = CryptoJS.MD5(wordArray).toString();
      // or CryptoJS.SHA256(wordArray).toString(); for SHA-2
      console.log("MD5 Checksum", hash);
      callback(hash);
    };
  }

更新(更简单):

 function calculateMd5(blob, callback) {
    var reader = new FileReader();
    reader.readAsBinaryString(blob);
    reader.onloadend = function () {
      var  hash = CryptoJS.MD5(reader.result).toString();
      // or CryptoJS.SHA256(reader.result).toString(); for SHA-2
      console.log("MD5 Checksum", hash);
      callback(hash);
    };
  }

一定要包括core.js,lib-typedarrays.js(重要),并md5.js从CryptoJS库组件.
请查看此小提琴以获取完整示例(因为原始访问控制它不适用于小提琴,请在本地服务器上尝试).

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有