Simple CRC checksum functions for JavaScript. Supports many predefined models such as CRC-8, CRC-16, CRC-24, CRC-32, and CRC-64. It also supports custom CRC models.
npm install js-crcbower install js-crc
For node.js, you can use this command to install:
npm install js-crc
js-crc. crc32 and crc16. More models are in js-crc/models. You can check all models in this file. The name and alias will convert to lower snake case and export. For example, CRC-64/ECMA-182 will convert to crc_64_ecma_182.JavaScript
var crc32 = require('js-crc').crc32;
var crc16 = require('js-crc').crc16;
var crc_64_ecma_182 = require('js-crc/models').crc_64_ecma_182;
`
or
`JavaScript
const { crc32, crc16 } = require('js-crc');
const { crc_64_ecma_182 } = require('js-crc/models');
`$3
If you use TypeScript, you can import like this:
`TypeScript
import { crc32, crc16 } from 'js-crc';
import { crc_64_ecma_182 } from 'js-crc/models';
`$3
It supports AMD:
`JavaScript
require(['your/path/crc.js'], function (crc) {
var crc32 = crc.crc32;
var crc16 = crc.crc16;
// ...
});
`Usage
$3
You could use like this:
`JavaScript
crc32('Message to check');
crc16('Message to check');var crc = crc32.create();
crc.update('Message to check');
crc.hex();
var crc2 = crc32.update('Message to check');
crc2.update('Message2 to check');
crc2.array();
`$3
You can create custom model:
`JavaScript
const { createModel } = require('js-crc');
var myModel = createModel({
width: 16,
poly: 0x8005,
init: 0x0000,
refin: true,
refout: true,
xorout: 0x0000
});
myModel('Message to check');
`If width more than 32,
poly, init and xorout have to split into an array of 32-bit numbers. For example
`JavaScript
createModel({
width: 82,
poly: [0x0308c, 0x01110114, 0x01440411],
init: [0, 0, 0],
refin: true,
refout: true,
xorout: [0, 0, 0]
})
`$3
`JavaScript
crc32('The quick brown fox jumps over the lazy dog'); // 414fa339
crc32('The quick brown fox jumps over the lazy dog.'); // 519025e9// It also supports byte
Array, Uint8Array, ArrayBuffer input:
crc32([0]); // d202ef8d
crc32(new Uint8Array([0])); // d202ef8d
``