打印

HotWC3内的“科学”---CRC位域4表(小表)

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

最新版的HotWC3网上在线运算器
HotWC3操作方法:
1.选择文件类型为“.C”。
2.选择功能“CRC位域表及算法”。
3.选择单选钮“CRC_CCITT”。
4.点击“结果”钮并在此框内显示“code”。(此方法只适应于Keil C51)
5.在“明文”框内输入需要校验的数据流并选择或不选择“文本”确定其格式(HEX/BIN)。
6.点击“小表”即可生成下列表格及C语言查表算法。
7.点击“保存”即可将表格和算法保存为C语言格式的文件可直接通过C语言编译系统的编译及运行。

现以Keil C51的CRC16_CCITT为例:

//CRC位域4表(大端):
code const unsigned int CRCL16_1021_Table[16] = {
  0x0000,0x1021,0x2042,0x3063,0x4084,0x50A5,0x60C6,0x70E7,0x8108,0x9129,0xA14A,0xB16B,0xC18C,0xD1AD,0xE1CE,0xF1EF
};
//CRC位域4查表算法(大端):
unsigned int GetCRCL16_1021_FFFF_0000_Table(unsigned char *crcBuff, unsigned char crcLen) {
unsigned char i;
unsigned int crc = 0xFFFF;
unsigned char crcTemp;
  for(i = 0; i < (crcLen * 2); i ++) {
    if (i & 1) crcTemp = crcBuff[i >> 1] & 0x0F;
    else crcTemp = crcBuff[i >> 1] >> 4;
    crc = (crc << 4) ^ CRCL16_1021_Table[(crc >> 12) ^ crcTemp];
  }
  return crc;
}
void main() {
code const unsigned char dataTable[] = "\x01\x23\x45\x67\x89\xAB\xCD\xEF";
unsigned int crc;
  crc = GetCRCL16_1021_FFFF_0000_Table((unsigned char *)dataTable, sizeof(dataTable) - 1);
  while(1);
}

相关帖子

沙发
hotpower|  楼主 | 2011-8-30 02:30 | 只看该作者
不让修改,再给新链接地址:http://www.hotpage.net.cn/HotPower_HotAjax.html

使用特权

评论回复
板凳
Cortex-M0| | 2011-8-30 07:16 | 只看该作者
这个不错,不是非典,是经典之作啊~~~

使用特权

评论回复
地板
xd54622| | 2011-8-30 15:30 | 只看该作者
顶菜农叔叔一个

使用特权

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

使用特权

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

使用特权

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

本版积分规则

1460

主题

21619

帖子

506

粉丝