如何使用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上不起作用,请在本地服务器上尝试)。
相关文章:
- 需要比特币校验地址和json帮助
- 如何编码/解码这个专有校验和(Athena 16C PID控制器)
- Range.deserializeSelection校验和错误
- 如何使快速执行基于校验和的缓存
- 相同的 md5 用于 JS 和 PHP
- 反应校验和无效的服务器渲染
- 如何使用 Node.js 中的 XBee API 解决校验和不匹配错误
- 从 webRequest 获取文件的校验和
- 信用卡校验和使我的网页崩溃
- 如何使用CryptoJS计算blob的md5校验和
- 如何在Javascript中获得特定URL处图像的MD5校验和
- C#中的UTF16LE的MD5(没有BOM和0字节结束)
- PESEL校验和验证(Javascript/HTML)
- 在主页上反应无效的校验和,而不是辅助页面
- 如何计算奇偶校验是偶数还是奇数
- requireJS优化器能用MD5校验和更新静态文件引用和名称吗?
- 尝试捕获输入的校验和验证,以检查Javascript中输入的三个部分
- 在js中进行整数校验和求和
- 这个函数计算的是什么样的校验和
- 如何同时从两个url中获取校验值