在 Azure 上上传的 blob 的 MD5 哈希值与本地计算机上的相同文件不匹配

MD5 hash of blob uploaded on Azure doesnt match with same file on local machine

我目前正在 Azure Blob 存储上上传媒体。一切工作正常,除非我尝试使用本地文件(与上传的完全相同的文件)对上传媒体的 MD5 哈希进行 macth。本地文件 returns 一个字节数组,其中 blob.Properties.ContentMD5 returns 一个字符串,两者不匹配。

本地 MD5 哈希: sÔ(F¦‚"“Db~[N

blob.Properties.ContentMD5: c9QoHkamgiKTRANifltOGQ==

有什么方法可以匹配这两者吗?

Here is a good article关于如何计算和检查 Blob MD5 校验和。

我以前遇到过这个,我不知道为什么,但你不能就这样md5.computeHash(fileBytes)。 对于 Azure Blob,它使用以下路径获取哈希:

// Validate MD5 Value
var md5Check = System.Security.Cryptography.MD5.Create();
md5Check.TransformBlock(retrievedBuffer, 0, retrievedBuffer.Length, null, 0);     
md5Check.TransformFinalBlock(new byte[0], 0, 0);

// Get Hash Value
byte[] hashBytes = md5Check.Hash;
string hashVal = Convert.ToBase64String(hashBytes);

而且有效...

是的,正如 Guarav 已经提到的 - MD5 哈希值被保存为 base64 字符串。