如何使用 CryptoJS 计算 blob 的 md5 校验和
How to calculate md5 checksum of blob using CryptoJS
正在使用 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校验和?
使用以下代码创建正确的 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);
};
}
请确保包含来自 CryptoJS 库的 core.js
、lib-typedarrays.js
(重要)和 md5.js
组件。
请参阅此 fiddle 以获取完整示例(由于原始访问控制,它无法在 fiddle 上运行,请在您的本地服务器上尝试)。
正在使用 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校验和?
使用以下代码创建正确的 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);
};
}
请确保包含来自 CryptoJS 库的 core.js
、lib-typedarrays.js
(重要)和 md5.js
组件。
请参阅此 fiddle 以获取完整示例(由于原始访问控制,它无法在 fiddle 上运行,请在您的本地服务器上尝试)。