我目前正致力于在Azure Blob存储上上传媒体。一切正常,除非我尝试将上传媒体的MD5哈希与本地文件(完全相同的上传文件)进行混合。本地文件返回一个字节数组,其中blob.Properties.ContentMD5返回一个字符串,两者都不匹配。
本地MD5哈希:sÔ(F |,“”Db~ [N
blob.Properties.ContentMD5: c9QoHkamgiKTRANifltOGQ ==
任何可能的方法来匹配这两个?
答案 0 :(得分:5)
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字符串。