固件通信CRC校验

 一、设备端加密

uint8 get_crc8(uint8 *ptr,uint32 len)
{
	uint8 crc;
 	uint8 i;
	
    crc = 0;
	
    while(len--)
    {
       crc ^= *ptr++;
       for(i = 0;i < 8;i++)
       {
           if(crc & 0x01)
           {
               crc = (crc >> 1) ^ 0x8F;
           }else crc >>= 1;
       }
    }
    return crc;
}

 

二、Java后台加密

public static int getCRC(byte[] data){
        int  CRC=0;
        for(int i=0;i> 1) ^ 0X8f;
                }else{
                    CRC >>= 1;
                }
            }
        }
        CRC &= 0xff;
        return CRC;
    }

 

说明:后台获取设备提交过来得内容后,生成CRC码进行校验。(java中byte有符号最大127,超过后强转为负数,与上ff即可) 

java字符串转byte见下篇 

你可能感兴趣的:(固件通信CRC校验)