我需要使用Web服务传递文件(我可以控制webservice)。为了满足安全性要求,我需要确保传递的文件未被修改或损坏。我打算在下面这样做。
byte[]
计算哈希值
System.Security.Cryptography.MD5.Create().ComputeHash(stream);
传递文件
当我将文件(字节数组)传递给Web服务时,传递我的哈希值是一个好习惯吗?
或者我是否需要按照其他流程检查文件?处理这个问题的最佳方法是什么?
答案 0 :(得分:0)
如果这是安全要求,将MD5总和与文件一起发送可能不是您想要做的:任何可以拦截文件的人也可以重写校验和。
我使用的是CRC:它们对文件(或流)内容中的小变化稍微敏感,而且它们更紧凑,更容易比较。 .NET似乎没有CRC实现,但我发现一个很好的在线似乎运行良好, Calculating CRC-32 in C# and .NET 。
您的客户端是否也能独立计算校验和?