Используйте библиотеки C++ Повышения . Существует CRC, включенный там и , лицензия хороша.
Эти ОТРЫВКИ C Архив Исходного кода имеют реализация CRC32 , который свободно применим:
/* Copyright (C) 1986 Gary S. Brown. You may use this program, or
code or tables extracted from it, as desired without restriction.*/
(К сожалению, c.snippets.org, кажется, умер. К счастью, Wayback Machine заархивировали его.)
, Чтобы быть в состоянии скомпилировать код, необходимо будет добавить определения типов для BYTE
как неподписанное 8-разрядное целое число и DWORD
как неподписанное 32-разрядное целое число, наряду с заголовочными файлами crc.h & sniptype.h.
единственный критический объект в заголовке является этим макросом (который мог столь же легко войти в сам CRC_32.c:
#define UPDC32(octet, crc) (crc_32_tab[((crc) ^ (octet)) & 0xff] ^ ((crc) >> 8))
Я - автор исходного кода в указанной ссылке. В то время как намерение лицензии исходного кода не ясно (это будет позже сегодня), код является на самом деле открытым и бесплатным для использования в Ваших бесплатных приложениях или коммерческом применении без каких-либо условий.
pycrc - это сценарий Python, который генерирует код CRC на языке C, с возможностью выбора размера, алгоритма и модели CRC.
Он выпущен под лицензией MIT. Это приемлемо для ваших целей?