求助,求助,crc16校验码在线计算问题

求助:CRC16结果验证
[问题点数:20分,结帖人blackkey2008]
求助:CRC16结果验证
[问题点数:20分,结帖人blackkey2008]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2009年4月 总版技术专家分月排行榜第一
2009年11月 Linux/Unix社区大版内专家分月排行榜第一2009年6月 Linux/Unix社区大版内专家分月排行榜第一2009年4月 C/C++大版内专家分月排行榜第一2009年3月 C/C++大版内专家分月排行榜第一2009年3月 Linux/Unix社区大版内专家分月排行榜第一2009年2月 Linux/Unix社区大版内专家分月排行榜第一
匿名用户不能发表回复!|求助 crc校验问题!!!!!!!!!!!!!!!!!!!!!!!!_百度知道
求助 crc校验问题!!!!!!!!!!!!!!!!!!!!!!!!
小弟 做crc32校验,现在已经完成了一个字节也就是8个bit的校验,但是一帧中有好多字节,请问后面的每个字节怎么处理,假如我第一个字节的校验 已经完成了, 得到了32位校验码,如果再来第二个字节,在第一字节校验的基础上应该怎么操作?说一下 方法就行了!谢...
我有更好的答案
网络知识~~另外,团IDC网上有许多产品团购,便宜有口碑
为您推荐:
其他类似问题
crc校验的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。用labview 怎么做crc16校验_百度知道
用labview 怎么做crc16校验
我有更好的答案
最近做了RS232串行通信CRC16检验的实验,网盘里是程序和实验报告。(Labview2014)仅供参考!
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。查看: 1784|回复: 1
CRC-32校验文件完整性该怎么写?
阅读权限30
结帖率: (6/10)
看了某篇文章讲CRC32校验的,有几点疑惑:
CRC32校验是在哪里写校验,校验什么文件?某个dll?还是程序本身?还没编译怎么知道自己本身的CRC-32的值?网上和论坛搜索了很多资料,还是不会实际应用过来。有没有大神能提供详细的写法或能够引用的例程。多谢!
网上参考的文章:看完不知道怎么用
4.加壳后CRC验证我们很有必要给自己的软件加上更好的保护。CRC校验就是其中的一种不错的方法。CRC是什么东西呢?其实我们大家都不应该会对它陌生,回忆一下?你用过RAR和ZIP等压缩软件吗?它们是不是常常会给你一个恼人的“CRC校验错误”信息呢?我想你应该明白了吧,CRC就是块数据的计算值,它的全称是“Cyclic Redundancy Check”,中文名是“循环冗余码”,“CRC校验”就是“循环冗余校验”。CRC有什么用呢?它的应用范围很广泛,最常见的就是在网络传输中进行信息的校对。其实我们大可以把它应用到软件保护中去,因为它的计算是非常非常非常严格的。严格到什么程度呢?你的程序只要被改动了一个字节(甚至只是大小写的改动),它的值就会跟原来的不同。呵呵,是不是很厉害呢?所以只要给你的“原”程序计算好CRC值,储存在某个地方,然后在程序中随机地再对文件进行CRC校验,接着跟第一次生成并保存好的CRC值进行比较,如果相等的话就说明你的程序没有被修改/破解过,如果不等的话,那么很可能你的程序遭到了病毒的感染,或者被奸人用16进制工具暴力破解过了。CRC的本质是进行XOR运算,运算的过程我们不用管它,因为运算过程对最后的结果没有意义;我们真正感兴趣的只是最终得到的余数,这个余数就是CRC值。 用户林子深提供了一个CRC32.EC的易模块,这个模块可以在论坛上或资源网上搜索到。大家可以直接拿过来用,导入易语言后如下图所示:
QQ截图52.png (64.57 KB, 下载次数: 0)
20:12 上传
调用方式可为如下代码:判断(取循环冗余校验和(读入文件(取执行文件名()))= )其中上述的数字为主程序的CRC码值。大家可以利用上述特性,即结果是数值的特性,不用进行比较,而是用加减法的方法得出前后两个CRC验的差值,如果为0,那说明两个数字是相等的,主程序没有被改动过。否则就是被改过的。例如下述代码:程序被改 =&&1计次循环首(取绝对值(取循环冗余校验和(读入文件(取执行文件名()))- ),)程序被改 =&&0-跳出循环()计次循环尾()返回(程序被改)上述代码中,“取绝对值()”是将负数也转换为正数,以方便进行计次循环。上述代码中,数值型变量“程序被改”为1表示没有被改动过,如果为0表示被改动过。返回的数值就可以进行一些陷阱的计算了。我的方案的缺点分析:CRC-32的值其实可以由奸人自行计算得出后,重新写入到程序验证处。这样的话,我们做的工作岂不是没有意义了?其实解决的方法还是有的,我们可以在计算CRC-32值之前,对参与转换的字符串加点手脚,例如对这个字符串进行移位、xor等操作,或者把自己的生日等信息加入到字符串中,随你的便什么都行,总之不是单纯的文件的内容就行了,然后在最后比较的时候,也用同样的方法反计算出CRC-32值。这样得到的CRC-32就不是由文件的内容计算出来的,相信对破解者的阻力也会加大不少。 总结:以上的方法大家都可以在软件中采用,最好写到一个DLL文件中,然后多放几个需要验证的子程序,随时以备调用即可。
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
揭阳精易科技有限公司申明:我公司所有的培训课程版权归精易所有,任何人以任何方式翻录、盗版、破解本站培训课程,我们必将通过法律途径解决!
公司简介:揭阳市揭东区精易科技有限公司致力于易语言教学培训/易语言学习交流社区的建设与软件开发,多年来为中小企业编写过许许多多各式软件,并把多年积累的开发经验逐步录制成视频课程供学员学习,让学员全面系统化学习易语言编程,少走弯路,减少对相关技术的研究与摸索时间,从而加快了学习进度!
防范网络诈骗,远离网络犯罪
违法和不良信息举报电话,QQ: ,邮箱:@b.qq.com
Powered by
X3.2 揭阳市揭东区精易科技有限公司
粤公网安备 25求教C语言编写的CRC16的校验程序_百度知道
求教C语言编写的CRC16的校验程序
我有更好的答案
unsigned short crc_dsp(unsigned short reg, unsigned char data_crc) //reg为crc寄存器, data_crc为将要处理的8bit数据流 {
//crc寄存器将移出的最高1bit
unsigned short gx = 0x8005, i = 0; //i为左移次数, gx为生成多项式 data = (unsigned short)data_ data = data && 8; reg = reg ^ do { msb = reg & 0x8000; reg = reg && 1; if(msb == 0x8000) { reg = reg ^ } i++; } while(i & 8); return (reg); }
采纳率:20%
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 crc16在线校验 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信