我使用 C zlib API 是因为它具有将crc32_combine
校验和连接在一起的功能,而 Boost 则没有。
但是,我需要使用 polynomial 来实现 CRC32-C (Castagnoli) 校验和0x1EDC6F41
,而不是标准的 CRC32 校验和。
使用 Boost 我显然可以使用:
#include <boost/crc.hpp>
using crc_32c_type = boost::crc_optimal<32, 0x1EDC6F41, 0xFFFFFFFF, 0xFFFFFFFF, true, true>;
crc_32c_type result;
result.process_bytes(reinterpret_cast<const char*>(&buffer), len);
return result.checksum();
Run Code Online (Sandbox Code Playgroud)
其中可以使用0x1EDC6F41
多项式。
有没有类似的方法可以让我用 zlib 做到这一点?