使用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()实现了它

我必须从前端上传一个文件,并计算该文件的md5哈希值。 我尝试使用crypto.js生成md5,但对于图像,它给出了错误的md5。 我看到了一个名为onlinemd5.com的网站,它正是我所需要的

有谁能帮助我如何使用javascript计算文件(文本文件、图像、视频等)的md5哈希值? 可以从下载代码并实现它吗

注意:我在中尝试了一些建议,但没有用



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]);
    }
);