CRC 合并未知 CRC

CRC Combine Unknown CRC

另一个 zlib CRC Combine 相关问题 :P 我希望能够组合 CRC(X) + CRC(Y) = CRC(Z),问题是我不知道 CRC(Y) 应该是什么。有什么我可以说使用 CRC(X) 和 CRC(Z) 来得到 CRC(Y) 应该是什么? 此时总大小是已知的(例如 CRC(X) 是 40 字节,CRC(Z) 应该是 100 字节,所以 CRC(Y) 是 60 字节长)

是的。 zlib 的 crc32_combine64() 函数有 one line:

return multmodp(x2nmodp(len2, 3), crc1) ^ crc2;

如果我们调用总 CRC crc3,那么您可以简单地得到 crc2

crc2 = multmodp(x2nmodp(len2, 3), crc1) ^ crc3;