CRC (循环冗余校验)
循环冗余校验(Cyclic Redundancy Check, CRC)是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。
下面是一个在线生成校验位的网站,可用于校验生成的crc-8是否正确
CRC(循环冗余校验)在线计算 : http://www.ip33.com/crc.html
/**
* CRC-8 工具类
*/
public class CRC8Util {
/**
* CRC-8
* @param source
* @param offset
* @param length
* @return
*/
public static int CRC8(byte[] source, int offset, int length) {
int wCRCin = 0x00;
int wCPoly = 0x07;
for (int i = offset, cnt = offset + length; i < cnt; i++) {
for (int j = 0; j < 8; j++) {
boolean bit = ((source[i] >> (7 - j) & 1) == 1);
boolean c07 = ((wCRCin >> 7 & 1) == 1);
wCRCin <<= 1;
if (c07