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.
The uint64be npm package is designed to handle 64-bit unsigned integers in big-endian format. It provides utilities to encode and decode these integers to and from buffers, which is useful in various applications such as binary data processing, network protocols, and file formats that require precise control over byte order and integer representation.
Encoding a 64-bit unsigned integer to a buffer
This feature allows you to encode a 64-bit unsigned integer into a buffer in big-endian format. The code sample demonstrates encoding the integer 1234567890123456789 into a buffer.
const uint64be = require('uint64be');
const buffer = Buffer.alloc(8);
uint64be.encode(1234567890123456789n, buffer);
console.log(buffer);
Decoding a 64-bit unsigned integer from a buffer
This feature allows you to decode a 64-bit unsigned integer from a buffer in big-endian format. The code sample demonstrates decoding a buffer into the integer value.
const uint64be = require('uint64be');
const buffer = Buffer.from([0x11, 0x22, 0x10, 0xF4, 0x7D, 0xE9, 0x81, 0x15]);
const value = uint64be.decode(buffer);
console.log(value);
The int64-buffer package provides similar functionality for handling 64-bit integers, both signed and unsigned, in both big-endian and little-endian formats. It offers more flexibility in terms of endianness and integer types compared to uint64be.
The bufferpack package is a more general-purpose library for packing and unpacking binary data. It supports various data types, including 64-bit integers, and provides more comprehensive functionality for working with binary data compared to uint64be.
The node-int64 package provides a way to work with 64-bit integers in JavaScript. It supports both big-endian and little-endian formats and offers methods for arithmetic operations, making it more versatile than uint64be.
Encode / decode big endian unsigned 64 bit integers
npm install uint64be
var uint64be = require('uint64be')
var buf = uint64be.encode(42) // returns a 8 byte buffer with 42 encoded
console.log(uint64be.decode(buf)) // returns 42
Javascript (currently) only supports integers up to 2^53 - 1
without any
loss of precision so beware of this if you encode / decode any integers larger than that.
buffer = uint64be.encode(num, [buffer], [offset])
Encode a number as a big endian 64 bit unsigned integer. Optionally you can pass a buffer + offset as the 2nd and 3rd argument and the number will be encoded into that buffer at the given offset.
num = uint64be.decode(buffer, [offset])
Decode a number from a buffer.
length = uint64be.encodingLength(num)
Always returns 8
. Added to comply with the standard encoding interface in node.
Similarly uint64be.encode.bytes
and uint64be.decode.bytes
is also set to 8
.
MIT
FAQs
Encode / decode big endian unsigned 64 bit integers
We found that uint64be demonstrated a not healthy version release cadence and project activity because the last version was released 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.
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.