你会怎么做?
您正在发送包含多行的文件。每一行都是数据库中的一条记录。
所有文件一起压缩成一个文件。用这个文件发送校验和是否足以确保对方收到所有记录并且没有记录消失?
如果文件的任何内容格式不正确或丢失,校验和将发生变化,因此通过比较校验和,收件人可以确定文件已完全接收且未损坏。毕竟,这就是校验和的全部目的。
如果您担心攻击者,我不会将校验和与文件一起发送,因为攻击者可以拦截文件和校验和,更改文件,修改校验和以允许修改显示为有效,然后将文件发送到其方法。
然而,就像其他海报所说的那样,主要的包装格式包含一个用于验证内容的内置校验和。
大多数打包格式(gzip、zip、...)通常都有内置校验和,因此如果您只想检查文件在传输过程中是否没有物理损坏,则无需添加校验和。
如果它是压缩的,你只发送一个文件。如果未正确接收 zip 文件,您将无法打开它。内部压缩档案管理自己的校验和以确保数据完整性。
这取决于您要防止哪种“消失”。如果只是随机错误,那么校验和就可以了。另一方面,如果是恶意攻击者故意使记录消失,那么校验和是不够的,你需要一个 MAC。