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

时间:2015-07-02 11:33:54

标签: c# azure hash md5 azure-storage

我目前正致力于在Azure Blob存储上上传媒体。一切正常,除非我尝试将上传媒体的MD5哈希与本地文件(完全相同的上传文件)进行混合。本地文件返回一个字节数组,其中blob.Properties.ContentMD5返回一个字符串,两者都不匹配。

本地MD5哈希:sÔ(F |,“”Db~ [N

blob.Properties.ContentMD5: c9QoHkamgiKTRANifltOGQ ==

任何可能的方法来匹配这两个?

1 个答案:

答案 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字符串。