我想比较两个Blob
以查看它们之间是否有变化。
一种方法是计算 Blob 的哈希值,然后进行比较,例如:
hash(firstBlob) === hash(secondBlob)
我该如何计算 Blob 的哈希值,并检查它是否与另一个哈希值不同?
我想比较两个Blob
以查看它们之间是否有变化。
一种方法是计算 Blob 的哈希值,然后进行比较,例如:
hash(firstBlob) === hash(secondBlob)
我该如何计算 Blob 的哈希值,并检查它是否与另一个哈希值不同?
您可以使用FileReader
API来获取blob的内容以进行比较。如果您必须使用CryptoJS,请使用readAsBinaryString
:
var a = new FileReader();
a.readAsBinaryString(blob);
a.onloadend = function () {
console.log(CryptoJS.MD5(CryptoJS.enc.Latin1.parse(a.result)));
};
请注意,readAsBinaryString
已被弃用,因此如果可以使用其他库(例如SparkMD5),则应改用数组缓冲区代替:var a = new FileReader();
a.readAsArrayBuffer(blob);
a.onloadend = function () {
console.log(SparkMD5.ArrayBuffer.hash(a.result));
};
readAs*
被定义为异步的,这意味着onloadend
函数将在事件被调用之前被定义。 - Qantas 94 Heavy