打印

为stm32f的CRC32申冤---它是主流

[复制链接]
15865|31
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hotpower|  楼主 | 2009-10-31 00:37 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hotpower 于 2010-9-7 02:13 编辑

哈哈~~~为香主申冤~~~

stm32f的CRC32主流化crc32_mpeg2
多项式:
左移CRC32=X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1

简写:CRCL32_04C11DB7_FFFFFFFF_00000000

最新版V4.08: http://www.hotpower.org/HotAjax/HotPower_HotAjax.html
可以验证任何三点采样算法及**任何CRC计算器的多项式。

应用方法:

1.选择“逆向”和CRCN。
点击“运算”
在输入框得到00..,00..1,00..80
在输出框得到应该采样的3点,测试其他任何CRC运算器需要在它的输入出取3点。
点击“还原”
在结果框内报告结果或出错类型。
在结果内得到方向及位数,其他参数在权值,初值,出值内内替换。

应用很爽,也发现了STM32与crc32_mpeg2是一个多项式,当时有人质疑ST公司“不遵守CRC32标准”
为何只初值反向,出值为0。

夜深了,出个解决方案,让stm32f的CRC32主流化:

同时也发现了自己写程序的笔误,导致CRC32的方向不对和crc32_mpeg2出值不对。


随后将提供文件及文本功能。

HotWC3对fsum frontend-1.5.5.1软件CRC计算器的差分攻击结果 2009/10/26 7:38:29
CRC权值方向初值出值测试方法(**CRC之法) 2009/10/27 19:46:56

沙发
hotpower|  楼主 | 2009-10-31 00:47 | 只看该作者
现在正式将STM32_CRC32划归crc32_mpeg2

使用特权

评论回复
板凳
hotpower|  楼主 | 2009-11-2 00:18 | 只看该作者
最新版的HotWC3很黄很暴力


引用:
最初由 HotPower发布
伪造实际很容易:图中的CRC64不知是何种???具体些,像CRC64-ECMA就很明确

入值=0000000000000000
出值=EE2939579550E938(伪造一个)
初值=0000000000000000
权值=42F0E1EBA9EA3693 CRC64= EA7438964D2F9734

明文1=3C4DE0E9B2B1E075671281DEF4E6BC3D
密文1=0123456789ABCDEF045D01C1D87F7E0C
CRC64= EA7438964D2F9734

至于CRC64_ecma我需要知道它的权值

实在找不到里面的CRC64,CRC64_ecma那里都有
http://zh.wikipedia.org/wiki/%E5%BE%...A0%A1%E9%A9%97

1)
既然 HotPower 在 【原创】用CRC编解码矩阵的概念任意制造CRC碰撞 54 樓 引述了 wikipedia 的內容,請問對於該內容兩個 viewoints如何說明!?

:理論上來講,CRC64 的碰撞機率大約是每 18×10^18 個 CRC 碼出現一次。
:CRC 並不能可靠地驗證數據完整性(即數據沒有發生任何變化),這是因為 CRC 多項式是線性結構,可以非常容易地故意改變數據而維持 CRC 不變,參見CRC and how to Reverse it -- A CRC Tutorial & The c00l way to Reverse CRC 中的證明。

2)
從第一點得知,有人給出了 CRC64 的碰撞率。
從第二點得知, CRC 是線性結構,因此對於這種 characteristic,是有方法進行 prediction 的,因為它是 linear structure。該文提到可以用 Message authentication code 驗證數據完整性;因超出本帖範圍,故不討論。

3)
我想知道 HotPower 的 CRC 方法,有否概估碰撞機率?
我想知道 HotPower 的 CRC 方法,是線性結構還是非線性結構?
我想知道 HotPower 的 CRC 方法,如何可靠地進行數據完整性的驗證?



我研究的是前人未曾研究过的东西,俺没什么理论依据。

可以仔细看贴:http://bbs.pediy.com/showthread.php?t=93968&page=4

我研究的是任意碰撞,而不是穷举得来的结果,因为那些全部都是可预测的。

我把帖中网友给的CRC32碰撞的数据给出分析结果,工具是最新版的HotWC3_V4.09
它支持任意碰撞、对任意CRC逆向出多项式,支持位域4表即可操作半字节。支持16个通用的CRC多项式。
并支持任意多项式的CRC4~CRC64.



http://bbs.pediy.com/showthread.php?t=93968
14楼
可设长度
像 '1234' 的 CRC32 为 9BE3E0A3
我试过 长度=4 的明文 只有 '1234'
但长度=5的明文有256个, 例如下列几个明文 (十六进制), 其CRC32都是 9BE3E0A3:
20 74 FD 5F DD
21 E2 CD 58 AA
22 58 9C 51 33
23 CE AC 56 44
24 6D 39 32 DA
25 FB 09 35 AD
26 41 58 3C 34
27 D7 68 3B 43
28 46 75 84 D3
29 D0 45 83 A4
2A 6A 14 8A 3D
2B FC 24 8D 4A
长度=16 的明文只有下列一组附合 CRC32=9BE3E0A3
00 00 00 00 00 00 00 01 CE DD 16 26
可设长度
像 '1234' 的 CRC32 为 9BE3E0A3
我试过 长度=4 的明文 只有 '1234'
但长度=5的明文有256个, 例如下列几个明文 (十六进制), 其CRC32都是 9BE3E0A3:
输入明文    输出密文          输入碰撞等效明文  校验结果
2074FD5FDD  77B79CC4641C1F5C  2074FD5F0A517BBC  9BE3E0A3
            YYYYYYYYNNNNNNNN  Y:可攻击位置 N:不准攻击位置
21E2CD58AA  77B79CB3641C1F5C  21E2CD587D517BBC  9BE3E0A3
22589C5133  77B79C2A641C1F5C  22589C51E4517BBC  9BE3E0A3
23CEAC5644  77B79C5D641C1F5C  23CEAC5693517BBC  9BE3E0A3
246D3932DA  77B79CC3641C1F5C  246D39320D517BBC  9BE3E0A3
25FB0935AD  77B79CB4641C1F5C  25FB09357A517BBC  9BE3E0A3
2641583C34  77B79C2D641C1F5C  2641583CE3517BBC  9BE3E0A3
27D7683B43  77B79C5A641C1F5C  27D7683B94517BBC  9BE3E0A3
28467584D3  77B79CCA641C1F5C  2846758404517BBC  9BE3E0A3
29D04583A4  77B79CBD641C1F5C  29D0458373517BBC  9BE3E0A3
2A6A148A3D  77B79C24641C1F5C  2A6A148AEA517BBC  9BE3E0A3
2BFC248D4A  77B79C53641C1F5C  2BFC248D9D517BBC  9BE3E0A3
                  XX 攻击位置 00~FF 共256次
                    
实际有密文位数-32个攻击点,如
输入明文    输出密文          输入碰撞等效明文  校验结果
XXXXXXXXXX  77B79C53641C1F5C  2BFC248D9D517BBC  9BE3E0A3
                  XX 攻击位置 00~FF 共256次
XXXXXXXXXX  00B79C53641C1F5C  4AC8733B9D517BCB  9BE3E0A3
            YY 新攻击位置 00~FF 共256次
            
长度=16 的明文只有下列一组附合 CRC32=9BE3E0A3
输入明文                 输出密文                 校验结果
0000000000000001CEDD1626 DEBB20E3EDDA1000641C1F5C 9BE3E0A3
                         YYYYYYYYYYYYYYYYNNNNNNNN Y:可攻击位置 N:不准攻击位置
00000000410671DACFDD1626 DEBB20E3EDDA1001641C1F5C 9BE3E0A3
00000000C30A936CCCDD1626 DEBB20E3EDDA1002641C1F5C 9BE3E0A3
                                        X 攻击位置 0~F 共16次
实际有密文位数-64个攻击点,如
输入明文                 输出密文                 校验结果
00000000C30A936CCCDD1626 DEBB20E3EDDA1002641C1F5C 9BE3E0A3
                                        X 攻击位置 0~F 共16次
C46692D5C30A286CCCDD1626 DE0020E3EDDA1002641C1F5C 9BE3E0A3
                           YY 新攻击位置 00~FF 共256次

由crchead, crcfinal可快速得出1个32bit的值,这个32 bit是可逆的。
附件是我写的一个工具。
比如:
crchead =  0xFFFFFFFF;
crcfianl = 0xDEADBEEF;
5 byte, 每个byte范围 0 - FF,
则符合值为:
004E3726D4
01D80721A3
026256283A
...
FE55E8238E
FFC3D824F9
它们的crc都是
0xDEADBEEF
输入明文    输出密文         输入碰撞等效明文  校验结果
004E3726D4  E6B5A5E021524110 004E3726DC826E1F  DEADBEEF
            YYYYYYYYNNNNNNNN Y:可攻击位置 N:不准攻击位置
01D80721A3  E6B5A59721524110 01D80721AB826E1F  DEADBEEF
026256283A  E6B5A50E21524110 0262562832826E1F  DEADBEEF
FE55E8238E  E6B5A5BA21524110 FE55E82386826E1F  DEADBEEF
FFC3D824F9  E6B5A5CD21524110 FFC3D824F1826E1F  DEADBEEF
                  XX 攻击位置 00~FF 共256次
实际有密文位数-32个攻击点,如
输入明文    输出密文          输入碰撞等效明文  校验结果
XXXXXXXXXX  E6B5A5CD21524110  FFC3D824F1826E1F  DEADBEEF
                  XX 攻击位置 00~FF 共256次
XXXXXXXXXX  00B79C53641C1F5C  2DC56DB0F1826EF9  DEADBEEF
            YY 新攻击位置 00~FF 共256次

引用:
1)
既然 HotPower 在 【原创】用CRC编解码矩阵的概念任意制造CRC碰撞 54 樓 引述了 wikipedia 的內容,請問對於該內容兩個 viewoints如何說明!?

一:理論上來講,CRC64 的碰撞機率大約是每 18×10^18 個 CRC 碼出現一次。
二:CRC 並不能可靠地驗證數據完整性(即數據沒有發生任何變化),這是因為 CRC 多項式是線性結構,可以非常容易地故意改變數據而維持 CRC 不變,參見CRC and how to Reverse it -- A CRC Tutorial & The c00l way to Reverse CRC 中的證明。

2)
從第一點得知,有人給出了 CRC64 的碰撞率。
從第二點得知, CRC 是線性結構,因此對於這種 characteristic,是有方法進行 prediction 的,因為它是 linear structure。該文提到可以用 Message authentication code 驗證數據完整性;因超出本帖範圍,故不討論。

3)
我想知道 HotPower 的 CRC 方法,有否概估碰撞機率?
我想知道 HotPower 的 CRC 方法,是線性結構還是非線性結構?
我想知道 HotPower 的 CRC 方法,如何可靠地進行數據完整性的驗證?  

我只回答:


引用:
一:理論上來講,CRC64 的碰撞機率大約是每 18×10^18 個 CRC 碼出現一次。

CRC8为2^8=256故CRC8 的碰撞機率大約是每 256個 CRC 碼出現一次。
CRC64:2^64=18446744073709551616
           故:CRC64 的碰撞機率大約是每 18×10^18 個 CRC 碼出現一次。

所以,要想让CRC8碰撞多于1次,就必须要大于8位即至少要2个字节才能制造“任意碰撞”


引用:
我想知道 HotPower 的 CRC 方法,有否概估碰撞機率?

举例CRCL8_07_00_00
即左移CRC8,权值0x07,初值0出值0,多项式:左移CRC8=X8+X2+X+1

输入(明文):1234 输出(密文):7EF1 结果(CRC校验和)F1

我们即可用HotWC3制造任意碰撞:

1.必须记住碰撞概率CRC8为2^8即密文的最后8位即1个字节F1不需改变,因为它就是我们需要
预测的碰撞值。
2.将密文的第1个字节从0x00碰撞到最后1个字节0xFF
3.点击“还原”即做CRC的逆运算

故得到碰撞列表:
输入(明文):004A 输出(密文):00F1 结果(CRC校验和)F1
输入(明文):D94B 输出(密文):01F1 结果(CRC校验和)F1
输入(明文):B548 输出(密文):02F1 结果(CRC校验和)F1
..........................................................................................
输入(明文):91B4 输出(密文):FEF1 结果(CRC校验和)F1
输入(明文):48B5 输出(密文):FFF1 结果(CRC校验和)F1


正因为菜农逆向了“CRC逆运算”,才导致了"CRC任意碰撞","逆向CRC表达式"
"CRC编解码矩阵","CRC编解码表","CRC位域4"及"CRC任意位域"等怪问题的轻松解决。

这些都是菜农18年对CRC研究的结果,看到这里的论坛有密界高人想探讨一番。

不料这里还要穷举碰撞,实在是郁闷。

同时也谢谢这些网友,否则我真不愿意再升级HotWC3网上运算器

不敢自吹,没任何CRC计算器的功能比它强大的,至少没有“还原功能”!!!

我给王育民教授表演CRC任意碰撞时,估计他是看待了,因为他从未看见这样的碰撞~~~

使用特权

评论回复
地板
mcuisp| | 2009-11-2 01:56 | 只看该作者
老兄很高深。

使用特权

评论回复
5
ZRL700424| | 2009-11-2 08:18 | 只看该作者
不懂!
这个贴子的目的是?

使用特权

评论回复
6
hotpower|  楼主 | 2009-11-6 20:12 | 只看该作者
本帖最后由 hotpower 于 2009-11-6 20:13 编辑

哈哈~~~农民不会什么算法,只会种菜~~~

使用特权

评论回复
7
txcy| | 2009-11-7 09:43 | 只看该作者
也不是很懂

使用特权

评论回复
8
wentian311| | 2010-9-5 22:15 | 只看该作者
楼主太强悍了

使用特权

评论回复
9
pkat| | 2010-9-6 17:54 | 只看该作者
说实在的,跟不上楼主的思路

使用特权

评论回复
10
火箭球迷| | 2010-9-6 19:20 | 只看该作者
这冤申的,看半天也没看太明白:dizzy:

使用特权

评论回复
11
dfsa| | 2010-9-6 21:54 | 只看该作者
hotpower大叔发表感言得考虑一下大众的理解能力啊:lol

使用特权

评论回复
12
hotpower|  楼主 | 2010-9-7 00:50 | 只看该作者
本帖最后由 hotpower 于 2010-9-7 00:52 编辑

哈哈~~~应用HotAjax四点**任意CRC算法

国芯方案中有些flash是2m的机器的crc校验码不知道是如何算出来的。下边举的有例子。哪位高手知道这种校验码是如何算出来的?
例一:
数据部分:
080AD79D112226FF800100002E400000708000000001FFFFFFFF00002E68000070800000000000002E90000070800000000000002EB8000070800000000000002E400000708000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF188D0EABFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000CB2E0
校验码:
A6725D00
例二:
数据部分:
0810CCF1215920FF800100002E400000708000000001FFFFFFFF00002E68000070800000000000002E90000070800000000000002EB8000070800000000000002E400000708000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16FB93CAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000BB5C0
校验码:
A0E05247
例三:
数据部分:
0810D7B6050052FF800100002E400000708000000001FFFFFFFF00002E68000070800000000000002E90000070800000000000002EB8000070800000000000002E400000708000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16FB93CAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000BB5C0
校验码:
E2E77506
例四:
数据部分:
0810D7B5152749FF800100002E400000708000000001FFFFFFFF00002E68000070800000000000002E90000070800000000000002EB8000070800000000000002E400000708000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16FB93CAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000BB5C0
校验码:
A14D4519

大家把4个数字串粘贴到HotAjax的“明文框”内(内部是很大的~~~),看看结果正确否???
不对俺菜农就不玩CRC32了~~~

使用特权

评论回复
13
hotpower|  楼主 | 2010-9-7 02:17 | 只看该作者
应用HotAjax自动生成CRC算法的C语言源码


例如需要生成STM32的CRC32
步骤:
1. 打开网页http://www.hotpower.org/HotAjax/HotPower_HotAjax.html
2. 选择 crc32_stm32
3. 在“功能”下拉框内,选择“CRC位域表及算法”
4. 将输出文件格式由“.TXT”改为“.C”
5. 点击“清空”,清空上面的多行编辑框
6. 点击“大表”,即可得到下面的C语言的源码程序

//CRC位域8表(大端):
const unsigned long CRCL32_04C11DB7_Table[256] = {
  0x00000000L,0x04C11DB7L,0x09823B6EL,0x0D4326D9L,0x130476DCL,0x17C56B6BL,0x1A864DB2L,0x1E475005L,
  0x2608EDB8L,0x22C9F00FL,0x2F8AD6D6L,0x2B4BCB61L,0x350C9B64L,0x31CD86D3L,0x3C8EA00AL,0x384FBDBDL,
  0x4C11DB70L,0x48D0C6C7L,0x4593E01EL,0x4152FDA9L,0x5F15ADACL,0x5BD4B01BL,0x569796C2L,0x52568B75L,
  0x6A1936C8L,0x6ED82B7FL,0x639B0DA6L,0x675A1011L,0x791D4014L,0x7DDC5DA3L,0x709F7B7AL,0x745E66CDL,
  0x9823B6E0L,0x9CE2AB57L,0x91A18D8EL,0x95609039L,0x8B27C03CL,0x8FE6DD8BL,0x82A5FB52L,0x8664E6E5L,
  0xBE2B5B58L,0xBAEA46EFL,0xB7A96036L,0xB3687D81L,0xAD2F2D84L,0xA9EE3033L,0xA4AD16EAL,0xA06C0B5DL,
  0xD4326D90L,0xD0F37027L,0xDDB056FEL,0xD9714B49L,0xC7361B4CL,0xC3F706FBL,0xCEB42022L,0xCA753D95L,
  0xF23A8028L,0xF6FB9D9FL,0xFBB8BB46L,0xFF79A6F1L,0xE13EF6F4L,0xE5FFEB43L,0xE8BCCD9AL,0xEC7DD02DL,
  0x34867077L,0x30476DC0L,0x3D044B19L,0x39C556AEL,0x278206ABL,0x23431B1CL,0x2E003DC5L,0x2AC12072L,
  0x128E9DCFL,0x164F8078L,0x1B0CA6A1L,0x1FCDBB16L,0x018AEB13L,0x054BF6A4L,0x0808D07DL,0x0CC9CDCAL,
  0x7897AB07L,0x7C56B6B0L,0x71159069L,0x75D48DDEL,0x6B93DDDBL,0x6F52C06CL,0x6211E6B5L,0x66D0FB02L,
  0x5E9F46BFL,0x5A5E5B08L,0x571D7DD1L,0x53DC6066L,0x4D9B3063L,0x495A2DD4L,0x44190B0DL,0x40D816BAL,
  0xACA5C697L,0xA864DB20L,0xA527FDF9L,0xA1E6E04EL,0xBFA1B04BL,0xBB60ADFCL,0xB6238B25L,0xB2E29692L,
  0x8AAD2B2FL,0x8E6C3698L,0x832F1041L,0x87EE0DF6L,0x99A95DF3L,0x9D684044L,0x902B669DL,0x94EA7B2AL,
  0xE0B41DE7L,0xE4750050L,0xE9362689L,0xEDF73B3EL,0xF3B06B3BL,0xF771768CL,0xFA325055L,0xFEF34DE2L,
  0xC6BCF05FL,0xC27DEDE8L,0xCF3ECB31L,0xCBFFD686L,0xD5B88683L,0xD1799B34L,0xDC3ABDEDL,0xD8FBA05AL,
  0x690CE0EEL,0x6DCDFD59L,0x608EDB80L,0x644FC637L,0x7A089632L,0x7EC98B85L,0x738AAD5CL,0x774BB0EBL,
  0x4F040D56L,0x4BC510E1L,0x46863638L,0x42472B8FL,0x5C007B8AL,0x58C1663DL,0x558240E4L,0x51435D53L,
  0x251D3B9EL,0x21DC2629L,0x2C9F00F0L,0x285E1D47L,0x36194D42L,0x32D850F5L,0x3F9B762CL,0x3B5A6B9BL,
  0x0315D626L,0x07D4CB91L,0x0A97ED48L,0x0E56F0FFL,0x1011A0FAL,0x14D0BD4DL,0x19939B94L,0x1D528623L,
  0xF12F560EL,0xF5EE4BB9L,0xF8AD6D60L,0xFC6C70D7L,0xE22B20D2L,0xE6EA3D65L,0xEBA91BBCL,0xEF68060BL,
  0xD727BBB6L,0xD3E6A601L,0xDEA580D8L,0xDA649D6FL,0xC423CD6AL,0xC0E2D0DDL,0xCDA1F604L,0xC960EBB3L,
  0xBD3E8D7EL,0xB9FF90C9L,0xB4BCB610L,0xB07DABA7L,0xAE3AFBA2L,0xAAFBE615L,0xA7B8C0CCL,0xA379DD7BL,
  0x9B3660C6L,0x9FF77D71L,0x92B45BA8L,0x9675461FL,0x8832161AL,0x8CF30BADL,0x81B02D74L,0x857130C3L,
  0x5D8A9099L,0x594B8D2EL,0x5408ABF7L,0x50C9B640L,0x4E8EE645L,0x4A4FFBF2L,0x470CDD2BL,0x43CDC09CL,
  0x7B827D21L,0x7F436096L,0x7200464FL,0x76C15BF8L,0x68860BFDL,0x6C47164AL,0x61043093L,0x65C52D24L,
  0x119B4BE9L,0x155A565EL,0x18197087L,0x1CD86D30L,0x029F3D35L,0x065E2082L,0x0B1D065BL,0x0FDC1BECL,
  0x3793A651L,0x3352BBE6L,0x3E119D3FL,0x3AD08088L,0x2497D08DL,0x2056CD3AL,0x2D15EBE3L,0x29D4F654L,
  0xC5A92679L,0xC1683BCEL,0xCC2B1D17L,0xC8EA00A0L,0xD6AD50A5L,0xD26C4D12L,0xDF2F6BCBL,0xDBEE767CL,
  0xE3A1CBC1L,0xE760D676L,0xEA23F0AFL,0xEEE2ED18L,0xF0A5BD1DL,0xF464A0AAL,0xF9278673L,0xFDE69BC4L,
  0x89B8FD09L,0x8D79E0BEL,0x803AC667L,0x84FBDBD0L,0x9ABC8BD5L,0x9E7D9662L,0x933EB0BBL,0x97FFAD0CL,
  0xAFB010B1L,0xAB710D06L,0xA6322BDFL,0xA2F33668L,0xBCB4666DL,0xB8757BDAL,0xB5365D03L,0xB1F740B4L
};
//CRC位域8查表算法(大端):
unsigned long GetCRCL32_04C11DB7_FFFFFFFF_00000000_Table(unsigned char *crcBuff, unsigned char crcLen) {
unsigned char i;
unsigned long crc = 0xFFFFFFFF;
  for(i = 0; i < crcLen; i ++) {
    crc = (crc << 8) ^ CRCL32_04C11DB7_Table[(crc >> 24) ^ crcBuff];
  }
  return crc;
}
void main() {
const unsigned char dataTable[] = "\x01\x23\x45\x67\x89\xAB\xCD\xEF";
unsigned long crc;
  crc = GetCRCL32_04C11DB7_FFFFFFFF_00000000_Table((unsigned char *)dataTable, sizeof(dataTable) - 1);
  while(1);
}



菜农通讯工具:

新浪网页版:http://t.sina.com.cn/hotpower
新浪手机版:http://t.sina.cn/hotpower

网 易微 博:http://t.163.com/hotpower
腾讯QQ:    1270688699

菜农邮箱:     HotPower@163.com
菜农导航: http://www.hotpage.net.cn/


使用特权

评论回复
14
yybj| | 2010-9-7 17:32 | 只看该作者
大叔又来了一堆头晕的代码:lol

使用特权

评论回复
15
hotpower|  楼主 | 2010-9-7 17:47 | 只看该作者
哈哈,都是自动生成的,俺不累…

使用特权

评论回复
16
无冕之王| | 2010-9-7 18:45 | 只看该作者
大叔不累就好,可怜看代码的人了:lol

使用特权

评论回复
17
PXJ_520| | 2010-9-8 13:33 | 只看该作者
MARK

使用特权

评论回复
18
john_light| | 2010-9-8 14:29 | 只看该作者
贴代码时要加[ code ][ /code ],否则碰到[ i ]之类就被浏览器当HTML代码吃掉。

使用特权

评论回复
19
xsgy123| | 2010-9-8 17:24 | 只看该作者
有何冤情,现在的主流是什么:lol

使用特权

评论回复
20
sinadz| | 2010-9-8 18:50 | 只看该作者
如果大叔写的是申冤状,估计审判官得琢磨几个月,才能开庭审理此案:lol

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1538

主题

21697

帖子

506

粉丝