MD5哈希生成相同的哈希码

时间:2019-07-12 10:07:26

标签: c# hash md5 filestream

我正在设置一个Blob,我需要获取一些东西以将其插入数据库中,因此我编写了一个代码以根据我的Stream获取hashId

我已经尝试在我的FileStorageService上使用IFormFile,但这有点不对。

private string GetMD5HashFromFile(Stream data)
       {
          using (var md5 = MD5.Create())
          {
            using (var fileStream = data)
              {

                  var hash = md5.ComputeHash(fileStream);

                  var hashString = Convert.ToBase64String(hash);

                  return hashString.TrimEnd('=');

              }

          }
       }

此代码始终会生成相同的哈希,因此无法将Blob信息保存在数据库中

1 个答案:

答案 0 :(得分:0)

基于C.Evenhuis的评论,我的一个朋友以这种方式下定决心:

 private string GetMD5HashFromFile(Stream data)
        {
            using (var md5 = MD5.Create())
            {
                data.Position = 0;
                var hash = md5.ComputeHash(data);
                var hashString = Convert.ToBase64String(hash);

                return hashString.TrimEnd('=');

            }
        }