C# 使用校验和验证收到的文件

C# 使用校验和验证收到的文件,c#,checksum,C#,Checksum,我需要使用web服务传递文件(我可以控制web服务)。为了满足安全性要求,我需要确保传递的文件没有被修改或损坏。我计划像下面这样做 将我的文件转换为字节[] 计算一个散列 System.Security.Cryptography.MD5.Create().ComputeHash(流) 传递文件 当我将文件(字节数组)传递给web服务时,传递哈希值是一种好的做法吗 或者我需要按照其他流程检查文件吗?处理此问题的最佳方法是什么?如果是安全要求,那么随文件一起发送MD5和可能不是您想要做的事情:任何能

我需要使用web服务传递文件(我可以控制web服务)。为了满足安全性要求,我需要确保传递的文件没有被修改或损坏。我计划像下面这样做

  • 将我的文件转换为
    字节[]
  • 计算一个散列

    System.Security.Cryptography.MD5.Create().ComputeHash(流)

  • 传递文件

  • 当我将文件(字节数组)传递给web服务时,传递哈希值是一种好的做法吗


    或者我需要按照其他流程检查文件吗?处理此问题的最佳方法是什么?

    如果是安全要求,那么随文件一起发送MD5和可能不是您想要做的事情:任何能够截取文件的人也可以重写校验和

    相反,我使用CRC:它们对文件(或流)内容中的微小更改更为敏感,而且更紧凑,更易于比较。NET似乎没有CRC实现,但我在网上找到了一个很好的,运行良好的


    您的客户机是否也能够独立计算校验和?

    只需在post标题中使用算法指定校验和。@Romoku-抱歉,我不清楚您所说的内容。你能提供一些例子链接吗。我正在使用web服务传输文件。是。客户有这种能力。如果我将收到的文件校验和从web服务返回给客户端,以便客户端可以验证该文件。该过程是否易于实现?取决于您的安全需求。如果您的目标是100%验证文件的逻辑完整性,那么您的建议就可以了。如果它是为了确保它没有被篡改(更安全相关),我建议构建一些更复杂的东西。