【发布时间】:2019-07-12 10:07:26
【问题描述】:
我正在设置一个 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 信息保存在我的数据库中
【问题讨论】:
-
也许你想散列文件的内容而不是 FileStream 对象?
-
进入这个方法的时候,确保流的
Position为0了吗? -
@churill
MD5.ComputeHash有一个接受Stream的重载。 -
@churill 我认为我需要对所有流进行哈希处理,但如果您有解决方案,我会接受
-
@C.Evenhuis 有没有办法验证这一点?因为我第一次生成哈希时,我想到了一些东西。
标签: c# hash md5 filestream