crc的java实现代码 crc程序实现

将C语言版的CRC校验改为java代码写

short CityComGetCRC(final byte[] data,short length){

创新互联专注于绥德网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供绥德营销型网站建设,绥德网站制作、绥德网页设计、绥德网站官网定制、小程序制作服务,打造绥德网络公司原创品牌,更为您提供绥德网站排名全网营销落地服务。

short crc=0,q;

short c,i;

for(i=0;ilength;i++){

c=data[i];

q=(crc^c)0x0f;

crc=(crc4)^(q*0x1081);

q=(crc^(c4))0xf0;

crc=(crc4)^(q*0x1081);

}

return crc;

}

求CRC-32/MPEG-2 的java实现

/******************************************************************************

* Name:    CRC-32/MPEG-2  x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1

* Poly:    0x4C11DB7

* Init:    0xFFFFFFF

* Refin:   False

* Refout:  False

* Xorout:  0x0000000

* Note:

*****************************************************************************/

uint32_t crc32_mpeg_2(uint8_t *data, uint_len length)

{

uint8_t i;

uint32_t crc = 0xffffffff;  // Initial value

while(length--)

{

  crc ^= (uint32_t)(*data++) 24;// crc ^=(uint32_t)(*data)24; data++;

  for (i = 0; i 8; ++i)

  {

      if ( crc 0x80000000 )

          crc = (crc 1) ^ 0x04C11DB7;

      else

          crc = 1;

  }

}

return crc;

}

————————————————

版权声明:本文为CSDN博主「e1ki0lp」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:

JAVA怎么做CRC校验的程序

实现方法:最简单的校验就是把原始数据和待比较数据直接进行比较,看是否完全一样这种方法是最安全最准确的。同时也是效率最低的。

应用例子:龙珠cpu在线调试工具bbug.exe。它和龙珠cpu间通讯时,bbug发送一个字节cpu返回收到的字节,bbug确认是刚才发送字节后才继续发送下一个字节的。 实现方法:在数据存储和传输中,字节中额外增加一个比特位,用来检验错误。校验位可以通过数据位异或计算出来。

应用例子:单片机串口通讯有一模式就是8位数据通讯,另加第9位用于放校验值。

bcc异或校验法(block check character)

实现方法:很多基于串口的通讯都用这种既简单又相当准确的方法。它就是把所有数据都和一个指定的初始值(通常是0)异或一次,最后的结果就是校验值,通常把它附在通讯数据的最后一起发送出去。接收方收到数据后自己也计算一次异或和校验值,如果和收到的校验值一致就说明收到的数据是完整的。

校验值计算的代码类似于:

unsigned uCRC=0;//校验初始值

for(int i=0;iDataLenth;i++) uCRC^=Data[i];

适用范围:适用于大多数要求不高的数据通讯。

应用例子:ic卡接口通讯、很多单片机系统的串口通讯都使用。 (Cyclic Redundancy Check)

实现方法:这是利用除法及余数的原理来进行错误检测的

用java编写一个获得CRC校验码的javabean

private static String mkCrc16(String str) {

CRC16 crc16 = new CRC16();

byte[] b = str.getBytes();

for (int i = 0; i b.length; i++)

crc16.update(b[i]);

return Integer.toHexString(crc16.value);

}

private static String mkCrc(String string) throws Exception {

CRC32 crc32 = new CRC32();

crc32.update(string.getBytes());

return Long.toHexString(crc32.getValue());

}

public class CRCUtil {

public static final int evalCRC16(byte[] data) {

int crc = 0xFFFF;

for (int i = 0; i data.length; i++) {

crc = (data[i] 8) ^ crc;

for (int j = 0; j 8; ++j)

if ((crc 0x8000) != 0)

crc = (crc 1) ^ 0x1021;

else

crc = 1;

}

return (crc ^ 0xFFFF) 0xFFFF;

}

}


网站名称:crc的java实现代码 crc程序实现
文章分享:http://ybzwz.com/article/dododpi.html