Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Azure上上载的blob的MD5哈希与本地计算机上的同一文件不匹配_C#_Azure_Hash_Md5_Azure Storage - Fatal编程技术网

C# Azure上上载的blob的MD5哈希与本地计算机上的同一文件不匹配

C# Azure上上载的blob的MD5哈希与本地计算机上的同一文件不匹配,c#,azure,hash,md5,azure-storage,C#,Azure,Hash,Md5,Azure Storage,我目前正在Azure Blob存储上上载媒体。除了我尝试将已上载媒体的MD5哈希与本地文件(与已上载的文件完全相同)进行混合外,所有操作都正常。本地文件返回一个字节数组,其中是blob.Properties.ContentMD5返回一个字符串,但两者不匹配 本地MD5散列:sÔ(Fа)“Db~[N blob.Properties.ContentMD5:c9QoHkamgiKTRANifltOGQ== 是否有任何可能的方法来匹配这两者?了解如何计算和检查Blob MD5校验和 我以前遇到过这种情况

我目前正在Azure Blob存储上上载媒体。除了我尝试将已上载媒体的MD5哈希与本地文件(与已上载的文件完全相同)进行混合外,所有操作都正常。本地文件返回一个字节数组,其中是blob.Properties.ContentMD5返回一个字符串,但两者不匹配

本地MD5散列:sÔ(Fа)“Db~[N

blob.Properties.ContentMD5:c9QoHkamgiKTRANifltOGQ==

是否有任何可能的方法来匹配这两者?

了解如何计算和检查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字符串。

尝试将MD5字节数组转换为base64字符串,并查看是否匹配。它确实有效!谢谢。您的代码返回与blob.Properties.ContentMD5相同的字符串。但是,我使用相同的代码将字节数组从源文件转换为base64字符串,并且有效!使用较新的MD5.ComputeHash(Stream)的较短版本的代码示例可在