计算图像文件的客户端MD5哈希,以匹配Firebase计算的哈希



在我的Angular Map中,是否有一种方法可以计算客户端图像文件的MD5,当我将该文件存储在Firestore上时,该方法将与MD5相匹配?我需要能够确认用户文件与firebase中存储的参考版本匹配,而无需再次上传。

我可以从本地机器上的文件对象中获取数组缓冲区,但无法在本地完成md5计算以匹配Firebase返回的内容。

我得到的结果看起来一点也不像Firebase报告的md5,所以我认为我根本没有走上正轨:

let file = target.files[0];
let reader = new FileReader();
reader.onload = function (event) {
data = event.target.result;
let ret: any = data;
if (data) {
let len = ret.byteLength;
let uintArBuff = new Uint8Array(ret);   //Does an array buffer convert to a Uint8Array?
let md5 = new Md5();
let hash = md5.appendByteArray(uintArBuff).end();  
console.log(hash);
}  
}
reader.readAsArrayBuffer(file);

上面的结果看起来像29e10414c7c7b7adb61330b02f8f3ddc,而firebase报告的MD5是KeEEFMfHt622EzCwL4893A==,所以我认为我完全错了。甚至不是相同长度的散列。

我本想发表评论,但声誉不允许我这样做。

CCD_ 3是base64编码的。你的是hex编码的。

我刚刚使用了一个在线转换,它检查出它们是否匹配。

相关内容

  • 没有找到相关文章

最新更新