我目前正致力于在Azure Blob存储上上传媒体。除了尝试用本地文件(完全相同的文件)处理上传媒体的MD5哈希之外,一切正常。本地文件返回一个字节数组,其中blob.Properties.ContentMD5返回一个字符串,两者不匹配。
本地MD5散列:s_(F_(?)(F_
blob.Properties.ContentMD5: c9QoHkamgiKTRANifltOGQ==
有什么办法可以匹配这两件事吗?
发布于 2015-07-02 12:44:21
这是一篇好文章关于如何计算和检查Blob MD5校验和。
我以前也遇到过这种情况,我不知道为什么,但你不能就这么做md5.computeHash(fileBytes)。对于Azure Blobs,它使用以下路径获取散列:
// 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);而且效果很好..。
是的,正如瓜拉夫已经提到的- MD5散列被保存为base64字符串。
https://stackoverflow.com/questions/31183477
复制相似问题