使用 javascript 的文件的 MD5 哈希
MD5 hash of a file using javascript
我要从前端上传一个文件,计算文件的md5哈希值。
我尝试使用 crypto.js 生成 md5,但对于图像,它给了我错误的 md5。
我看到一个名为 onlinemd5.com 的网站,它正是我所需要的。
任何人都可以帮助我如何使用 javascript 计算文件(文本文件、图像、视频等)的 md5 哈希值?
是否可以从http://onlinemd5.com下载代码并实现?
注意:我尝试了 How to calculate md5 hash of a file using javascript 中的一些建议,但没有用。
$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);
};
crypto.js 没有正确计算图像 md5。不过我没有尝试 sparkmd5 js。
我使用 reader.readAsArrayBuffer()
让它工作:
$(inputElement).change(
function () {
var reader = new FileReader();
reader.addEventListener(
'load',
function () {
var wordArray = CryptoJS.lib.WordArray.create(this.result);
console.log(CryptoJS.MD5(wordArray));
}
);
reader.readAsArrayBuffer(this.files[0]);
}
);
我不得不从 CryptoJS 添加一个额外的依赖项:https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js
我使用了 https://github.com/satazor/SparkMD5 的 spark-md5.js
它很棒而且非常快。如果有人试图计算任何上传文件的 md5,这是最好的解决方案。
我要从前端上传一个文件,计算文件的md5哈希值。 我尝试使用 crypto.js 生成 md5,但对于图像,它给了我错误的 md5。 我看到一个名为 onlinemd5.com 的网站,它正是我所需要的。
任何人都可以帮助我如何使用 javascript 计算文件(文本文件、图像、视频等)的 md5 哈希值? 是否可以从http://onlinemd5.com下载代码并实现?
注意:我尝试了 How to calculate md5 hash of a file using javascript 中的一些建议,但没有用。
$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);
};
crypto.js 没有正确计算图像 md5。不过我没有尝试 sparkmd5 js。
我使用 reader.readAsArrayBuffer()
让它工作:
$(inputElement).change(
function () {
var reader = new FileReader();
reader.addEventListener(
'load',
function () {
var wordArray = CryptoJS.lib.WordArray.create(this.result);
console.log(CryptoJS.MD5(wordArray));
}
);
reader.readAsArrayBuffer(this.files[0]);
}
);
我不得不从 CryptoJS 添加一个额外的依赖项:https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js
我使用了 https://github.com/satazor/SparkMD5 的 spark-md5.js 它很棒而且非常快。如果有人试图计算任何上传文件的 md5,这是最好的解决方案。