我有一个IFormFile
形式的文件对象。我需要计算该文件的校验和。我该怎么办。
public string FindChecksum (IFormFile file){
// How to calculate the checkSum
return "THE CHECKSUM";
}
答案 0 :(得分:2)
我会做这样的事情。
我假设您从IFromFile文件参数中获取数据。
public IActionResult IndexPost(IFormFile file)
{
Stream st = file.OpenReadStream();
MemoryStream mst = new MemoryStream();
st.CopyTo(mst);
return Content(ToMD5Hash(mst.ToArray()));
}
public static string ToMD5Hash(byte[] bytes)
{
if (bytes == null || bytes.Length == 0)
return null;
using (var md5 = MD5.Create())
{
return string.Join("", md5.ComputeHash(bytes).Select(x => x.ToString("X2")));
}
}
答案 1 :(得分:0)
另一种选择,以防万一有人觉得有用:
public string CreatePackage(string packageType, IFormFile package)
{
var hash = "";
using (var md5 = MD5.Create())
{
using (var streamReader = new StreamReader(package.OpenReadStream()))
{
hash = BitConverter.ToString(md5.ComputeHash(streamReader.BaseStream)).Replace("-", "");
}
}
return hash;
}