首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >CRC32 C或C++实现

CRC32 C或C++实现
EN

Stack Overflow用户
提问于 2008-11-19 18:41:38
回答 8查看 136.1K关注 0票数 57

我正在寻找一种用C或C++实现的CRC32,它被明确授权为免费或公共领域。实现here看起来不错,但它对许可证的唯一说明是“源代码”,这还不够好。我更喜欢非LGPL,这样我就不用浪费在DLL上了(我的应用是封闭源代码的)。我在zlib中看到了adler32实现,但我检查的是小块数据,这是adler不适合的。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2008-11-19 18:47:22

使用Boost C++ libraries。其中包含了一个CRC,并且license很好。

票数 27
EN

Stack Overflow用户

发布于 2008-11-19 19:16:31

SNIPPETS C Source Code Archive有一个可自由使用的CRC32 implementation

代码语言:javascript
复制
/* 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的typedefs添加为无符号的8位整数,将DWORD添加为无符号的32位整数,以及头文件crc.h & sniptype.h

标题中唯一关键的一项是这个宏(它可以很容易地放入CRC_32.c本身:

代码语言:javascript
复制
#define UPDC32(octet, crc) (crc_32_tab[((crc) ^ (octet)) & 0xff] ^ ((crc) >> 8))
票数 39
EN

Stack Overflow用户

发布于 2009-02-03 13:26:36

我是指定链接的源代码的作者。虽然源代码许可证的意图还不清楚(将在今天晚些时候),但代码实际上是开放的,可以在您的免费或商业应用程序中免费使用,没有附加任何条件。

票数 31
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/302914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档