Here is a good article on how to calculate and check Blob MD5 checksums.
I have faced this before, and I don't know why, but you can'T just do md5.computeHash(fileBytes)
.
For Azure Blobs, it uses the following path to get the hash:
// 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);
and it works...
And yes, as Guarav already mentioned - MD5 hash is saved as base64 string.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…