
Security News
Axios Supply Chain Attack Reaches OpenAI macOS Signing Pipeline, Forces Certificate Rotation
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.
Encode, decode, and generate base-58 and base-62 identifiers. Convertible MongoDB ObjectIds!
A basic base58 and base62 encoding and decoding system. Can optionally add a prefix to make the identifier more identifiable!
Encodes hex-strings, byte arrays, numbers, big integers, and MongoDB ObjectIds to base58 or base62. No dependencies either!
Install with NPM like so:
npm install base-id
const { base58, base62, base62p } = require('base-id');
// Generate a new crypto-random id with an arbitrary prefix
base58.generateToken(24, 'account_'); // account_ifq8PeVV9J3weEtz5V14cr9H7AuKhndD
// Generate a new crypto-random id with an arbitrary prefix
base62.generateToken(24, 'product_'); // product_8egyAcmiJhK0pFThcYHYIojG9GIKK7A4
base62p.generateToken(24, 'product_'); // product_mKO7RdTgKjHQtkrRMhm6uQAWmJ0hCRaG
// Encode a hex-string to base58
const hex = "0a372a50deadbeef";
let res = base58.encode(hex); // 2i6ye84HA6z;
// Encode a hex-string to base62
res = base62.encode(hex); // SnmsvJ1ziv;
res = base62p.encode(hex); // mR3E2wPbQQL;
// Make a MongoDB ObjectId pretty:
const objId = new ObjectId();
res = base58.encodeWithPrefix(objId, 'charge_'); // charge_2d2yysrPLNBLYpWfK
// Change a pretty id back into an ObjectId
new ObjectId(base58.decodeWithPrefix('charge_2d2yysrPLNBLYpWfK', 'charge_')); // new ObjectId("55ea16f30c169b651ddf40ea")
base58, base62, and base62pThe module exports both base58 and base62 instances with the following members.
encode(mixed) – Encodes the given value to the desired base encoding.decode(encodedString) – Decodes the given base-encoded string to a hex string.encodeWithPrefix(mixed, prefix) – Encodes the given value to the desired base encoding, prepending a prefix to the result.decodeWithPrefix(ecodedString, prefix) – Decodes the given base-encoded string to a hex string, stripping the given prefix.generateToken(bytes, prefix) – Generates a secure random string, base encoded, with an optional prefixgenerateBytes(count, options) – Generates secure random bytes
options.array – when truthy, will return a Uint8Array instead of a standard arraybytesToHex(bytes) – Convert a byte array to a hex stringdecodeHexToNumeric(hex) – Decodes a hex string to a BigInt numberencodeNumericToHex(dec) – Encode a number to hex stringgetHexFromObject(mixed) Gets the hex string from the given thing. Accepts a hex string, number, BigInt, byte array, or MongoDB ObjectId instance.getUUIDFromHex(hex, lowercase=true) Gets the formatted UUID string from the given hex string. Defaults to lowercase.There are two versions of base62 included, base62 and base62p, with the difference being that base62 does not preserve
leading zero bytes while base62p does preserve leading zero bytes by prepending a magic 0x01 byte before encoding.
Note: Base62 and Base62p are not interchangeable. Please use the version that suits your application. In a future version, base62p may become the default pending community feedback.
It's also worth noting that base58 preserves leading zero bytes.
For new applications using base62, please consider using base62p.
const { base58, base62, base62p } = require('base-id');
// example 32 byte uuid with all zeros
base58.decode(base58.encode('00000000000000000000000000000000')); // 00000000000000000000000000000000
base62.decode(base62.encode('00000000000000000000000000000000')); // 00
base62p.decode(base62p.encode('00000000000000000000000000000000')); // 00000000000000000000000000000000
In a future major release version, base62 may be replaced with base62p so base62 and base58 by default preserve leading zero bytes.
binaryToHexhexToBinaryFAQs
Encode, decode, and generate base-58 and base-62 identifiers. Convertible MongoDB ObjectIds!
The npm package base-id receives a total of 43 weekly downloads. As such, base-id popularity was classified as not popular.
We found that base-id 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
OpenAI rotated macOS signing certificates after a malicious Axios package reached its CI pipeline in a broader software supply chain attack.

Security News
Open source is under attack because of how much value it creates. It has been the foundation of every major software innovation for the last three decades. This is not the time to walk away from it.

Security News
Socket CEO Feross Aboukhadijeh breaks down how North Korea hijacked Axios and what it means for the future of software supply chain security.