物联网 服务器需要检验设备传输的数据,设备c语言写的,CRC8 校验多项式为 x8+x2+x+1,找了百度,必应。也没有找到java CRC8 多项式 x8+x2+x+1的实现,能找到的都是x8+x5+x4+1的,后转google,费了些功夫不过还好找到了。不说了,上代码。
package com.smartsocket.utils;
/**
*
*
* @author zs
*/
public class CRC8Util {
/**
* CRC8 校验 多项式 x8+x2+x+1
* @param b
* @param off
* @param len
* @return
*/
public static byte CRC8Check(final byte[] b, final int off, final int len){
byte result=0x00;
for (int i = 0; i < len; i++) {
result = CHECKSUM_TABLE[(result ^ (b[i + off] & 0xFF) ) & 0xFF];
}
return (byte) (result & 0xFFL);
}
private final static byte[] CHECKSUM_TABLE = { (byt