Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
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)
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 6,799 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 0 open source maintainers 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.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.