我正在使用C zlib API,因为它具有将crc32_combine
校验和连接在一起的功能,而Boost 1没有。
但是,我需要使用多项式实现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();
可以使用0x1EDC6F41
多项式。
我可以通过zlib使用类似的方法吗?
zlib是开源的。您可以简单地获取源代码并根据自己的需要进行修改。您可以将行:更改odd[0] = 0xedb88320UL;
为Castagnoli多项式的反射。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句