luat进行开发,支持crc16的,请参考crypto demo:
--- crc算法测试 -- @return 无 -- @usage crcTest() local function crcTest() local originStr = "sdfdsfdsfdsffdsfdsfsdfs1234" if tonumber(string.match(rtos.get_version(),"Luat_V(%d+)_"))>=21 then --crypto.crc16()第一个参数是校验方法,必须为以下几个;第二个参数为计算校验的字符串 log.info("testCrypto.crc16_MODBUS",string.format("%04X",crypto.crc16("MODBUS",originStr))) log.info("testCrypto.crc16_IBM",string.format("%04X",crypto.crc16("IBM",originStr))) log.info("testCrypto.crc16_X25",string.format("%04X",crypto.crc16("X25",originStr))) log.info("testCrypto.crc16_MAXIM",string.format("%04X",crypto.crc16("MAXIM",originStr))) log.info("testCrypto.crc16_USB",string.format("%04X",crypto.crc16("USB",originStr))) log.info("testCrypto.crc16_CCITT",string.format("%04X",crypto.crc16("CCITT",originStr))) log.info("testCrypto.crc16_CCITT-FALSE",string.format("%04X",crypto.crc16("CCITT-FALSE",originStr))) log.info("testCrypto.crc16_XMODEM",string.format("%04X",crypto.crc16("XMODEM",originStr))) log.info("testCrypto.crc16_DNP",string.format("%04X",crypto.crc16("DNP",originStr))) end log.info("testCrypto.crc16_modbus",string.format("%04X",crypto.crc16_modbus(originStr,slen(originStr)))) log.info("testCrypto.crc32",string.format("%08X",crypto.crc32(originStr,slen(originStr)))) end