我想通过简单地将它们连接在一起来通过网络发送几块数据,并且我希望能够使用校验和来验证一切是否正常(这主要是为了对错误进行防御性检查,而不是因为我已经看到或期望实际的低级数据损坏)。所以我正在寻找一种校验和算法,它可以让我从各个部分的校验和中计算出整体的校验和。
我认为可行的技术的一个简单示例是将每个块的每个字节视为一个整数,并将所有这些整数加在一起(当然,这不会检测到丢失的零字节)。另一种方法是只计算每个块的长度(当然,不会检测到不会导致净插入或删除的数据更改)。我相信,另一个是将所有字节异或在一起,但这只能生成 1 个字节的校验和(我可以一次取 4 个字节,并对每个单元进行异或,但如果块长度不是' t 是四的倍数,我不得不陷入混乱,我认为这可能会消除简单地将不同块连接在一起的能力)。
所以,我正在寻找一种更严格的校验和或散列算法,它仍然可以让我在给定每个块的校验和的情况下轻松计算几个连接块的校验和。有吗?