繁体   English   中英

计算图像文件的客户端MD5 hash以匹配由Firebase计算的一个?

[英]Calculate client side MD5 hash of an image file to match one calculated by Firebase?

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

我可以从本地计算机上的文件 object 获取数组缓冲区,但无法在本地完成 md5 计算以匹配 firebase 返回的 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==所以我认为我完全走错了树。 连长度都不一样 hash.. .

我会发表评论,但声誉不允许我发表评论。

KeEEFMfHt622EzCwL4893A==是 base64 编码的。 你的是hex编码的。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM