JavaScript实现crc校验(少走弯路)

一、安装

$ npm i @ratriches/crc
or,
$ npm i https://github.com/ratriches/crc

文档地址:@ratriches/crc - npm

二、CRC预定义模型

CRC8 预定义模型

  • CRC8, CRC8_SAE_J1850, CRC8_SAE_J1850_ZERO, CRC8_8H2F, CRC8_CDMA2000, CRC8_DARC, CRC8_DVB_S2, CRC8_EBU, CRC8_ICODE, CRC8_ITU, CRC8_MAXIM, CRC8_ROHC, CRC8_WCDMA

CRC16 预定义模型

  • CRC16_CCIT_ZERO, CRC16_ARC, CRC16_AUG_CCITT, CRC16_BUYPASS, CRC16_CCITT_FALSE, CRC16_CDMA2000, CRC16_DDS_110, CRC16_DECT_R, CRC16_DECT_X, CRC16_DNP, CRC16_EN_13757, CRC16_GENIBUS, CRC16_MAXIM, CRC16_MCRF4XX, CRC16_RIELLO, CRC16_T10_DIF, CRC16_TELEDISK, CRC16_TMS37157, CRC16_USB, CRC16_A, CRC16_KERMIT, CRC16_MODBUS, CRC16_X_25, CRC16_XMODEM,

CRC32 预定义模型

  • CRC32, CRC32_BZIP2, CRC32_C, CRC32_D, CRC32_MPEG2, CRC32_POSIX, CRC32_Q, CRC32_JAMCRC, CRC32_XFER,

二、使用

const { Crc, modelFind } = require('@ratriches/crc');

// predefined model
const m = modelFind('CRC16_KERMIT');
const c1 = new Crc(m);
console.log('tests 1');
console.log('1234567890', c1.compute('1234567890')); // 286B

// user defined model
const c2 = new Crc(16, 0x8005, 0x0102, 0xf00f, false, true);
console.log('tests 2');
console.log('1234567890', c2.compute('1234567890')); // 3E6F

猜你喜欢

转载自blog.csdn.net/start1018/article/details/128217182
今日推荐