zlib - CRC 结合未知 CRC
问题描述
另一个 zlib CRC 组合相关问题: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()
函数只有一行:
return multmodp(x2nmodp(len2, 3), crc1) ^ crc2;
如果我们称总 CRC crc3
,那么您可以crc2
简单地得到:
crc2 = multmodp(x2nmodp(len2, 3), crc1) ^ crc3;