问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请问:CRC是什么意思?

发布网友 发布时间:2022-04-20 03:42

我来回答

5个回答

热心网友 时间:2022-05-23 16:09

CRC意思是循环冗余码校验。

校验原理:(M-R)/G=Q+0/G  

说明:以接收到的校验码除以约定的除数,若余数为0,则可认为接收到的数据是正确的。  

例:有效信息1101,生成多项式样1011  

循环校验码解:  

有效信息1101(k=4),即M(x)=x3+x2+x0,生成多项式1011(r+1=4,即r=3);  

即G(x)=x3+x1+x0,M(x)·x3=x6+x5+x3,即1101000(对1101左移三位);  

M(x)·x3/G(x)=1101000/1011=1111+001/1011即1010的CRC是:1101001。

扩展资料:

CRC码集选择的原则:  

若设码字长度为N,信息字段为K位,校验字段为R位(N=K+R),则对于CRC码集中的任一码字,存在且仅存在一个R次多项式g(x),使得  

V(x)=A(x)g(x)=xRm(x)+r(x);  

其中:m(x)为K次信息多项式,r(x)为R-1次校验多项式,  

g(x)称为生成多项式:  

g(x)=g0+g1x+g2x2+。。。+g(R-1)x(R-1)+gRxR  

发送方通过指定的g(x)产生CRC码字,接收方则通过该g(x)来验证收到的CRC码字。

参考资料来源:百度百科-CRC (循环冗余校验)

热心网友 时间:2022-05-23 16:09

CRC 为 "循环冗余检验" 的缩写 (Cyclical Rendancy Check) ,是一种用得最广,检错能力很强的差错检测方法.它对数据进行多项式计算,并将得到的和数作为这个文件的一个实用的特征码.

CRC 一般为一个 8 位的16进制值串.也就是说,它的组成是可以是 0-F .

为什么需要CRC? - Why is CRC founded?

CRC 可以对文件进行侦错判断,确认文件在转移过程中是否有发生改动.当然也可以防止某些恶意的人为改动-因为CRC很容易反映出这一点.这也是为什么许多文件文件名中都附有 "CRC_XXXXX" 字样的原因.

应该说, CRC 在应用上是十分像 MD5 的.离我们很近的应用就是 eMule 文件链接中的 HASH ,即文件识别码.不过,HASH的长度较长,精度较高.

怎样使用CRC? - How to use CRC?

可以很方便地获取 Kana CheckSum 这个小巧的工具.
http://www.kanasolution.com/download.php?i=42

使用方法:
1.解压缩 zip 文件.
2.执行 crccheck.exe.
3.点击 FileName 栏后的 "..." ,浏览选择所要的文件.
4. Compare 下一行的类型中选择 CRC32 .
5. Calculate! 等待一会儿. CRC32 值计算好后将在 Value 一栏显示.

更方便的方法是:
1.将程序解压至一个安全的地方后,执行 crccheck.exe .
2.选中下方 Integrate with Explorer ,然后浏览器右键菜单中就会增添一项 "Kana Checksum" .
3.在选择的文件上 右键单击-->Kana Checksum-->Calculate CRC32 .等待完成吧~

需要说明的是,计算时间和被计算文件的大小成正比.所以如果计算一个上百 MB 的文件,就需要等个5秒以上了喔.

热心网友 时间:2022-05-23 16:10

CRC是一种算法,可以用着文件加密

CRC算法原理及C语言实现

摘 要 本文从理论上推导出CRC算法实现原理,给出三种分别适应不同计算机或微控制器硬件环境的C语言程序。读者更能根据本算法原理,用不同的语言编写出独特风格更加实用的CRC计算程序。
关键词 CRC 算法 C语言
1 引言
循环冗余码CRC检验技术广泛应用于测控及通信领域。CRC计算可以靠专用的硬件来实现,但是对于低成本的微控制器系统,在没有硬件支持下实现CRC检验,关键的问题就是如何通过软件来完成CRC计算,也就是CRC算法的问题。
这里将提供三种算法,它们稍有不同,一种适用于程序空间十分苛刻但CRC计算速度要求不高的微控制器系统,另一种适用于程序空间较大且CRC计算速度要求较高的计算机或微控制器系统,最后一种是适用于程序空间不太大,且CRC计算速度又不可以太慢的微控制器系统。
2 CRC简介
CRC校验的基本思想是利用线性编码理论,在发送端根据要传送的k位二进制码序列,以一定的规则产生一个校验用的监督码(既CRC码)r位,并附在信息后边,构成一个新的二进制码序列数共(k+r)位,最后发送出去。在接收端,则根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出错。
16位的CRC码产生的规则是先将要发送的二进制序列数左移16位(既乘以 )后,再除以一个多项式,最后所得到的余数既是CRC码,如式(2-1)式所示,其中B(X)表示n位的二进制序列数,G(X)为多项式,Q(X)为整数,R(X)是余数(既CRC码)。
(2-1)
求CRC码所采用模2加减运算法则,既是不带进位和借位的按位加减,这种加减运算实际上就是逻辑上的异或运算,加法和减法等价,乘法和除法运算与普通代数式的乘除法运算是一样,符合同样的规律。生成CRC码的多项式如下,其中CRC-16和CRC-CCITT产生16位的CRC码,而CRC-32则产生的是32位的CRC码。本文不讨论32位的CRC算法,有兴趣的朋友可以根据本文的思路自己去推导计算方法。
CRC-16:(美国二进制同步系统中采用)
CRC-CCITT:(由欧洲CCITT推荐)
CRC-32:

接收方将接收到的二进制序列数(包括信息码和CRC码)除以多项式,如果余数为0,则说明传输中无错误发生,否则说明传输有误,关于其原理这里不再多述。用软件计算CRC码时,接收方可以将接收到的信息码求CRC码,比较结果和接收到的CRC码是否相同。

3 按位计算CRC
对于一个二进制序列数可以表示为式(3-1):
(3-1)
求此二进制序列数的CRC码时,先乘以 后(既左移16位),再除以多项式G(X),所得的余数既是所要求的CRC码。如式(3-2)所示:
(3-2)
可以设: (3-3)
其中 为整数, 为16位二进制余数。将式(3-3)代入式(3-2)得:

(3-4)
再设: (3-5)
其中 为整数, 为16位二进制余数,将式(3-5)代入式(3-4),如上类推,最后得到:
(3-6)
根据CRC的定义,很显然,十六位二进制数 既是我们要求的CRC码。
式(3-5)是编程计算CRC的关键,它说明计算本位后的CRC码等于上一位CRC码乘以2后除以多项式,所得的余数再加上本位值除以多项式所得的余数。由此不难理解下面求CRC码的C语言程序。*ptr指向发送缓冲区的首字节,len是要发送的总字节数,0x1021与多项式有关。
unsigned int cal_crc(unsigned char *ptr, unsigned char len) {
unsigned char i;
unsigned int crc=0;
while(len--!=0) {
for(i=0x80; i!=0; i/=2) {
if((crc&;0x8000)!=0) {crc*=2; crc^=0x1021;} /* 余式CRC乘以2再求CRC */
else crc*=2;
if((*ptr&;i)!=0) crc^=0x1021; /* 再加上本位的CRC */
}
ptr++;
}
return(crc);
}
按位计算CRC虽然代码简单,所占用的内存比较少,但其最大的缺点就是一位一位地计算会占用很多的处理器处理时间,尤其在高速通讯的场合,这个缺点更是不可容忍。因此下面再介绍一种按字节查表快速计算CRC的方法。
4 按字节计算CRC
不难理解,对于一个二进制序列数可以按字节表示为式(4-1),其中 为一个字节(共8位)。
(4-1)
求此二进制序列数的CRC码时,先乘以 后(既左移16位),再除以多项式G(X),所得的余数既是所要求的CRC码。如式(4-2)所示:
(4-2)
可以设: (4-3)
其中 为整数, 为16位二进制余数。将式(4-3)代入式(4-2)得:
(4-4)
因为:
(4-5)
其中 是 的高八位, 是 的低八位。将式(4-5)代入式(4-4),经整理后得:
(4-6)
再设: (4-7)
其中 为整数, 为16位二进制余数。将式(4-7)代入式(4-6),如上类推,最后得:
(4-8)
很显然,十六位二进制数 既是我们要求的CRC码。
式(4-7)是编写按字节计算CRC程序的关键,它说明计算本字节后的CRC码等于上一字节余式CRC码的低8位左移8位后,再加上上一字节CRC右移8位(也既取高8位)和本字节之和后所求得的CRC码,如果我们把8位二进制序列数的CRC全部计算出来,放如一个表里,采用查表法,可以大大提高计算速度。由此不难理解下面按字节求CRC码的C语言程序。*ptr指向发送缓冲区的首字节,len是要发送的总字节数,CRC余式表是按0x11021多项式求出的。
unsigned int cal_crc(unsigned char *ptr, unsigned char len) {
unsigned int crc;
unsigned char da;
unsigned int crc_ta[256]={ /* CRC余式表 */
0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,
0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,
0x 1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,
0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,
0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,
0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,
0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,
0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,
0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,
0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,
0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,
0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,
0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,
0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,
0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,
0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,
0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,
0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,
0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,
0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,
0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,
0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,
0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,
0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,
0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,
0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,
0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,
0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,
0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,
0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,
0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,
0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0
};

crc=0;
while(len--!=0) {
da=(uchar) (crc/256); /* 以8位二进制数的形式暂存CRC的高8位 */
crc<<=8; /* 左移8位,相当于CRC的低8位乘以 */
crc^=crc_ta[da^*ptr]; /* 高8位和当前字节相加后再查表求CRC ,再加上以前的CRC */
ptr++;
}
return(crc);
}
很显然,按字节求CRC时,由于采用了查表法,大大提高了计算速度。但对于广泛运用的8位微处理器,代码空间有限,对于要求256个CRC余式表(共512字节的内存)已经显得捉襟见肘了,但CRC的计算速度又不可以太慢,因此再介绍下面一种按半字节求CRC的算法。
5 按半字节计算CRC
同样道理,对于一个二进制序列数可以按字节表示为式(5-1),其中 为半个字节(共4位)。
(5-1)
求此二进制序列数的CRC码时,先乘以 后(既左移16位),再除以多项式G(X),所得的余数既是所要求的CRC码。如式(4-2)所示:
(5-2)
可以设: (5-3)
其中 为整数, 为16位二进制余数。将式(5-3)代入式(5-2)得:
(5-4)
因为:
(5-5)
其中 是 的高4位, 是 的低12位。将式(5-5)代入式(5-4),经整理后得:
(5-6)
再设: (5-7)
其中 为整数, 为16位二进制余数。将式(5-7)代入式(5-6),如上类推,最后得:
(5-8)
很显然,十六位二进制数 既是我们要求的CRC码。
式(5-7)是编写按字节计算CRC程序的关键,它说明计算本字节后的CRC码等于上一字节CRC码的低12位左移4位后,再加上上一字节余式CRC右移4位(也既取高4位)和本字节之和后所求得的CRC码,如果我们把4位二进制序列数的CRC全部计算出来,放在一个表里,采用查表法,每个字节算两次(半字节算一次),可以在速度和内存空间取得均衡。由此不难理解下面按半字节求CRC码的C语言程序。*ptr指向发送缓冲区的首字节,len是要发送的总字节数,CRC余式表是按0x11021多项式求出的。
unsigned cal_crc(unsigned char *ptr, unsigned char len) {
unsigned int crc;
unsigned char da;
unsigned int crc_ta[16]={ /* CRC余式表 */
0x0000,0x1021,0x2042,0x3063,0x4084,0x50a5,0x60c6,0x70e7,
0x8108,0x9129,0xa14a,0xb16b,0xc18c,0xd1ad,0xe1ce,0xf1ef,
}

crc=0;
while(len--!=0) {
da=((uchar)(crc/256))/16; /* 暂存CRC的高四位 */
crc<<=4; /* CRC右移4位,相当于取CRC的低12位)*/
crc^=crc_ta[da^(*ptr/16)]; /* CRC的高4位和本字节的前半字节相加后查表计算CRC,
然后加上上一次CRC的余数 */
da=((uchar)(crc/256))/16; /* 暂存CRC的高4位 */
crc<<=4; /* CRC右移4位, 相当于CRC的低12位) */
crc^=crc_ta[da^(*ptr&;0x0f)]; /* CRC的高4位和本字节的后半字节相加后查表计算CRC,
然后再加上上一次CRC的余数 */
ptr++;
}
return(crc);
}

热心网友 时间:2022-05-23 16:10

真是的,一、二楼的从哪儿复制的这么一大堆废话,也不嫌麻烦。

CRC就是校验,提示它错误就是说你密码不对。
网上可以搜索到很多破除解压密码的,但真要想破除,那需要你有足够的耐心,可不是像二楼说的几秒,而是几天都有可能!

热心网友 时间:2022-05-23 16:11

CRC是循环冗余校验码的意思
请问:CRC是什么意思?

CRC意思是循环冗余码校验。校验原理:(M-R)/G=Q+0/G 说明:以接收到的校验码除以约定的除数,若余数为0,则可认为接收到的数据是正确的。例:有效信息1101,生成多项式样1011 循环校验码解:有效信息1101(k=4),即M(x)=x3+x2+x0,生成多项式1011(r+1=4,即r=3);即G(x)=x3+...

请问:CRC是什么意思?

CRC,即循环冗余校验,是一种用于检测数字数据传输或存储后可能出现的错误的编码方案。其校验原理基于以下等式:(M - R) / G = Q + 0 / G,其中:- M 代表原始数据。- R 代表生成多项式的常数项。- G 代表生成多项式。- Q 代表除法运算的结果。- 0 代表余数,当且仅当余数为0时,认为数据...

CRC错误是什么意思...

先和你说CRC是什么意思吧 循环冗余码校验英文名称为Cyclical Redundancy Check,简称CRC。它是利用除法及余数的原理来作错误侦测(Error Detecting)的。实际应用时,发送装置计算出CRC值并随数据一同发送给接收装置,接收装置对收到的数据重新计算CRC并与收到的CRC相比较,若两个CRC值不同,则说明数据通...

无线网卡接收的"CRC包"是什么意思?

CRC就是块数据的计算值,它的全称是“Cyclic Redundancy Check”,中文名是“循环冗余码”,“CRC校验”就是“循环冗余校验”

crc校验上报重发吗

CRC是用来检测数据传输过程中是否出现错误(某些位、某几位或者某块区域位错误)。CRC校验在接收端发现差错后,可根据双方协议规定要求发送方重新发送。CRC校验的过程是发送方根据发送报文,计算出CRC值。将原始信息和该CRC值一起发送给接收方。接收方根据原始信息,按照同样的算法,计算CRC。如果计算的CRC...

请问什么是硬盘的ECC和CRC的错误

ECC:扇区逻辑错误 CRC:循环冗余校验

数据错误循环冗余检查

循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。若CRC校验不通过,系统重复向硬盘复制数据,陷入死循环,导致复制过程无法完成。解决办法:注意到在上述过程中实际已有一部分数据复制到硬盘,只是...

钢铁产品:HRC hot rolled coil.请问CRC , HDG 是什么含义?并且

hrc 热轧镀锌板 crc 热轧板卷

请问枫雪里的CRC校验是什么意思

这个crc校验呢,顾名思义,是对数据进行校验的,用来验证数据的一致性和完整性 在计算机文件里面,任何一个文件都唯一地对应一个crc校验码,比如一个文本文档,你编辑完成后这个crc校验码就固定了,即使你在这个文本文档里面输入一个空格,这个crc校验码也会改变 所以你可以通过对比crc校验码来判定是否你...

猫里的FEC和CRC误差逐渐增大,直到频繁掉线,请问怎么解决?

FEC为前向纠错告警,CRC为循环冗余校验错误告警.出现这种告警说明从局端的接入设备到您的MODEM这一段的线路质量有问题(包括您的MODEM本身及话音分离器等).偶尔出现的话可能是线路上有临时的干扰,如果这个数值快速增加的话就会对上网有影响了.如果您已经换成新的MODEM了,也能保证室内线路或设备没问题,而...

请教意思是什么 乔碧萝是什么意思? 暨是什么意思 开绿灯是什么意思 物腐虫生是什么意思 忌是什么意思 占上风的意思是什么 贵庚是什么意思 不知不觉的意思是什么
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
请问:为什么安装完VMware_Workstation_8.0.4 后,没有反应,哪里操作不对... 干了2 年多 Java 外包,终于脱离了! 动漫中白衬衫+黑短裙+长筒袜+黑长直的有谁? 求动漫少女白衬衫大图 小米6x屏幕老闪怎么办?? 解梦,我梦见被一群人撕扯被生吃了,不用任何工具直接用手抓我身上肉... 我梦见为儿子摆酒席,来了一群雄狮在人群中捣乱,抢酒桌上的肉吃,客... 手机被偷了,打110,警方能帮助你找回来吗? 我梦见我正在卖猪肉,来了一帮女人把好肉都割走了,我和她们理论,还挨了... 我去建设银行开通手机银行,他们说我的手机号已经绑定过了不能开通_百度... CRC是什么意思? 读盘出现CRC错误是什么意思 CRC错误是什么意思... crc错误是什么意思? &quot;crc错误&quot;是什么意思? 理疗养生馆加盟什么品牌好? 想要开一家养生加盟店,有什么牌子推荐? 有什么好的医疗养生行业的合作加盟项目? 养生加盟有哪些大品牌? 养生项目加盟是指哪些项目 中医养身项目哪家好?都有哪些好的加盟项目? 养生加盟店有哪些? 养生馆加盟品牌有哪些? 有哪些保健养生加盟项目 养生保健有哪些项目加盟? 养生加盟店10大品牌,国内知名的养生加盟店有哪些? ppt和pdf打印哪个更清楚 ppt怎么导出pdf格式并质量不变 有什么办法可以提升PPT转PDF的质量吗 PPT相册转为PDF,怎么操作才能保持清晰度? CRC指的是什么 游戏安装过程中出现”CRC”错误是怎么回事? 交换机的crc错误指什么? 什么是CRC校验错误? 解压文件时出现CRC校验错误怎么回事 CRC 错误数是什么意思? 电脑出现CRC错误 硬盘出现“资料CRC错误”怎么办? CRC的中文意思是什么? 压缩文件提示CRC失败是怎么回事? 硬盘CRC报错是什么意思 告别2020年 迎接2021年的句子 时光荏苒世事变迁什么东西都在变化? 2021年适合发什么样的说说朋友圈? “时光荏再岁月变迁”的意思是什么? 迎接新年的句子2021 岁月悠悠的意思? 求文档: 时光荏苒,岁月悠悠,留不住珠环绿影,带不走... 关于时光荏苒的句子 岁月悠悠然, 韶华匆匆去的意思是什么?