使用javascript对文件进行MD5哈希
我必须从前端上传一个文件,并计算该文件的md5哈希值。 我尝试使用crypto.js生成md5,但对于图像,它给出了错误的md5。 我看到了一个名为onlinemd5.com的网站,它正是我所需要的 有谁能帮助我如何使用javascript计算文件(文本文件、图像、视频等)的md5哈希值? 可以从下载代码并实现它吗 注意:我在中尝试了一些建议,但没有用使用javascript对文件进行MD5哈希,javascript,file-upload,md5,Javascript,File Upload,Md5,我必须从前端上传一个文件,并计算该文件的md5哈希值。 我尝试使用crypto.js生成md5,但对于图像,它给出了错误的md5。 我看到了一个名为onlinemd5.com的网站,它正是我所需要的 有谁能帮助我如何使用javascript计算文件(文本文件、图像、视频等)的md5哈希值? 可以从下载代码并实现它吗 注意:我在中尝试了一些建议,但没有用 crypto.js未正确计算图像md5。不过我没有尝试SparkMD5JS 我使用reader.readAsArrayBuffer()实现了它
crypto.js未正确计算图像md5。不过我没有尝试SparkMD5JS 我使用
reader.readAsArrayBuffer()
实现了它:
我不得不从CryptoJS中添加一个额外的依赖项:
.我使用了来自
这是可怕的,相当快。如果有人试图计算任何上传文件的md5,这是最好的解决方案。请描述您到底尝试了什么,以及它是如何不起作用的。例如:首先我运行了a,但它抛出了错误,所以我尝试了b,但结果是c,这是我没有预料到的,因为我正在寻找类似d的模式。请详细说明“但没有用处”…很抱歉,我应该在我的问题中发布代码。请在下面找到它。我尝试使用js at,并从图片文件夹上传了一个名为koala.jpg的图像文件。它将md5计算为“4f413976a7a4b93d19c06e94fae0899d”,当我从onlinemd5.com获得不同的散列值时,我尝试在-github.com/sagens42/md5asm使用js。它给我md5值的空字符串。代码如下:var calcS=newMD5(reader.result)$scope.md5Value=calcS.getMd5();
$scope.upld = function(element){
$scope.files = element.files;
var file = $scope.files[0];
var reader = new FileReader();
reader.onload = function(){
$scope.md5_val = CryptoJS.MD5(reader.result);
$scope.upload_file();
$scope.$apply();
};
reader.readAsBinaryString(file);
};
$(inputElement).change(
function () {
var reader = FileReader();
reader.addEventListener(
'load',
function () {
var wordArray = CryptoJS.lib.WordArray.create(this.result);
console.log(CryptoJS.MD5(wordArray));
}
);
reader.readAsArrayBuffer(this.files[0]);
}
);