云上文件传输中的完整性校验
把安装包或离线数据文件放到华为云 OBS 等对象存储后,上传完成只是传输流程中的一个节点。接收方拿到的是否为预期文件,还需要有可以对照的依据。文件完整性校验,就是在发送前和接收后,用一致的方法检查内容是否发生变化。
一、先记录文件大小与内容摘要
文件大小可以帮助发现明显的截断,但两个内容不同的文件也可能大小相同。可以在源文件确定后,记录字节数,并使用 SHA-256 等算法生成内容摘要。摘要可理解为根据文件内容计算出的校验值;内容变化时,重新计算的结果通常也会变化。
二、对接收结果使用相同算法
下载完成后,对实际接收到的文件计算摘要,与发送前的记录比较。算法和计算对象要一致,例如不能把压缩包的摘要与解压后某个文件的摘要混用。对象名称、修改时间或平台返回的标识符,也不应未经确认就当作文件摘要使用。
三、让校验基准对应明确版本
如果文件生成后还会继续变化,过早计算的摘要便可能失去意义。应先完成写入,再生成校验记录,并标明文件版本或批次。对多个文件传输,可以维护一份清单,逐项记录名称、大小和摘要,接收后检查缺失项与多余项,避免只验证其中一个文件就结束。
四、区分完整与可信
摘要一致,说明接收内容与校验基准相符,但不能单凭这一点判断文件来源可信。如果文件和摘要都被替换,简单比较未必能发现问题。应通过可信渠道获取基准;需要验证发布者身份时,可按业务要求使用数字签名等机制。内容摘要本身也不提供加密保护。
日常操作中,可以把生成清单、传输和接收校验串成固定步骤。发现不一致时,保留文件版本与计算结果,检查源文件是否变化、传输是否完整,以及双方比较的是否为同一对象,再决定后续处理。
- 点赞
- 收藏
- 关注作者
评论(0)