
Research
Security News
The Growing Risk of Malicious Browser Extensions
Socket researchers uncover how browser extensions in trusted stores are used to hijack sessions, redirect traffic, and manipulate user behavior.
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.
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.
You can also install js-crc by using Bower.
bower install js-crc
For node.js, you can use this command to install:
npm install js-crc
There are only 2 default models in 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
.
If you use node.js, you should require the module first:
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
const { crc32, crc16 } = require('js-crc');
const { crc_64_ecma_182 } = require('js-crc/models');
If you use TypeScript, you can import like this:
import { crc32, crc16 } from 'js-crc';
import { crc_64_ecma_182 } from 'js-crc/models';
It supports AMD:
require(['your/path/crc.js'], function (crc) {
var crc32 = crc.crc32;
var crc16 = crc.crc16;
// ...
});
You could use like this:
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();
You can create custom model:
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
createModel({
width: 82,
poly: [0x0308c, 0x01110114, 0x01440411],
init: [0, 0, 0],
refin: true,
refout: true,
xorout: [0, 0, 0]
})
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
The project is released under the MIT license.
The project's website is located at https://github.com/emn178/js-crc
Author: Chen, Yi-Cyuan (emn178@gmail.com)
v0.3.1 / 2024-10-22
FAQs
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.
The npm package js-crc receives a total of 8,090 weekly downloads. As such, js-crc popularity was classified as popular.
We found that js-crc demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover how browser extensions in trusted stores are used to hijack sessions, redirect traffic, and manipulate user behavior.
Research
Security News
An in-depth analysis of credential stealers, crypto drainers, cryptojackers, and clipboard hijackers abusing open source package registries to compromise Web3 development environments.
Security News
pnpm 10.12.1 introduces a global virtual store for faster installs and new options for managing dependencies with version catalogs.