c语言 crc24算法,CRC32 逆向算法的C语言实现

这是一个使用C语言实现Gary S. Brown的32位CRC算法的程序,包括标准的CRC32计算和Ethernet FCS算法。此外,还提供了将4个字节添加到CRC值以改变CRC的方法以及从目标CRC值中移除字节以恢复原始CRC值的演示。
摘要由CSDN通过智能技术生成

C文件:

/*

* crc32.c

*

*  Gary S. Brown's 32 bit CRC

*

*  CopyRight (C) 2012 crazyleen ruishenglin@126.com

*/

#include "crc32.h"

#include

#include

/* ====================================================================== */

/*  COPYRIGHT (C) 1986 Gary S. Brown.  You may use this program, or      */

/*  code or tables extracted from it, as desired without restriction.    */

/*                                                                        */

/*  First, the polynomial itself and its table of feedback terms.  The    */

/*  polynomial is                                                        */

/*  X^32+X^26+X^23+X^22+X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X^1+X^0  */

/*                                                                        */

/* ====================================================================== */

static const unsigned int crc32_tab[] = { 0x00000000L, 0x77073096L, 0xee0e612cL,

0x990951baL, 0x076dc419L, 0x706af48fL, 0xe963a535L, 0x9e6495a3L,

0x0edb8832L, 0x79dcb8a4L, 0xe0d5e91eL, 0x97d2d988L, 0x09b64c2bL,

0x7eb17cbdL, 0xe7b82d07L, 0x90bf1d91L, 0x1db71064L, 0x6ab020f2L,

0xf3b97148L, 0x84be41deL, 0x1adad47dL, 0x6ddde4ebL, 0xf4d4b551L,

0x83d385c7L, 0x136c9856L, 0x646ba8c0L, 0xfd62f97aL, 0x8a65c9ecL,

0x14015c4fL, 0x63066cd9L, 0xfa0f3d63L, 0x8d080df5L, 0x3b6e20c8L,

0x4c69105eL, 0xd56041e4L, 0xa2677172L, 0x3c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值