打印

“手动的”CRC16CCITT(1021)的16字表长查表演算过程

[复制链接]
2153|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hotpower|  楼主 | 2009-10-18 22:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hotpower 于 2009-10-18 23:27 编辑

参见:CRC16CCITT(1021)的16字表长查表程序

原贴出处:https://bbs.21ic.com/icview-139615-1-1.html

hotpower发表于 2009-10-18 22:12 | 只看该作者 回复 引用 编辑 评分 返回版面 TOP





5楼:
哈哈~~~既然大家喜欢,俺就表演个“手动的”CRC16CCITT(1021)的16字表长查表演算过程:

CRC16Table[16]={
  0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,//注意本行的0x1021
  0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,
};

例如 CRC16,初值为0x0000, 求CRC16[0x1234]=0x13C6:

第1步:
CRC[0x1234>>12]=CRC[0x01]=0x1021
0x1234变为0x2340

第2步:
(0x1021<<4) ^ CRC[(0x1021>>12) ^ (0x2340>>12)]=0x0210 ^ CRC[0x01 ^ 0x02]
=0x0210 ^ CRC[0x03]=0x0210 ^ 0x3063 = 0x3273
0x2340变为0x3400

第3步:
(0x3273<<4) ^ CRC[(0x3273>>12) ^ (0x3400>>12)]=0x2730 ^ CRC[0x03 ^ 0x03]
=0x2730 ^ CRC[0x00]=0x2730 ^ 0x0000 = 0x2730
0x3400变为0x4000

第4步:
(0x2730<<4) ^ CRC[(0x2730>>12) ^ (0x4000>>12)]=0x7300 ^ CRC[0x02 ^ 0x04]
=0x7300 ^ CRC[0x06]=0x7300 ^ 0x60C6 = 0x13C6

例如 CRC16,初值为0xFFFF, 求CRC16[0x1234]=0x0EC9:

初始化: 0x1234 ^ 0xFFFF = 0xEDCB
第1步:
CRC[0xEDCB>>12]=CRC[0x0E]=0xE1CE
0xEDCB变为0xDCB0

第2步:
(0xE1CE<<4) ^ CRC[(0xE1CE>>12) ^ (0xDCB0>>12)]=0x1CE0^ CRC[0x0E ^ 0x0D]
=0x1CE0^ CRC[0x03]=0x1CE0^ 0x3063 = 0x2C83
0xDCB0变为0xCB00

第3步:
(0x2C83<<4) ^ CRC[(0x2C83>>12) ^ (0xCB00>>12)]=0xC830^ CRC[0x02 ^ 0x0C]
=0xC830 ^ CRC[0x0E]=0xC830 ^ 0xE1CE= 0x29FE
0xCB00变为0xB000

第4步:
(0x29FE<<4) ^ CRC[(0x29FE>>12) ^ (0xB000>>12)]=0x9FE0^ CRC[0x02 ^ 0x0B]
=0x9FE0^ CRC[0x09]=0x9FE0^ 0x9129= 0x0EC9


使用演算工具:http://www.hotc51.com/HotPower_HotWC3.html

或查表:
CRC16Table[16]={
  0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,//注意本行的0x1021
  0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,
};





本文可以证明菜农的脑浆是“红色的”~~~
16*2个字节“比拼”256*2个字节的结果:
循环次数是4次,而后者为2次。即速度降低1倍但空间被压缩16倍,不知菜农失败否~~~



相关帖子

沙发
duojinian| | 2009-10-19 08:51 | 只看该作者
download it thanks

使用特权

评论回复
板凳
hotpower|  楼主 | 2011-12-26 13:12 | 只看该作者
顶起来,掀起密码安全教育风暴~~~

使用特权

评论回复
地板
hotpower|  楼主 | 2012-10-23 19:02 | 只看该作者
挖墓为2012.10.25菜农个人版《HotWC3密码体系》开版搜索

使用特权

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

本版积分规则

1460

主题

21619

帖子

506

粉丝