Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
binary-sortable-hash
Advanced tools
Hash an array of numbers into a sortable(ish) binary number.
Hash arrays of numbers into a binary string from which you can reconstruct the original values, with configurable precision loss. The generated hashes sort well, so similar input values cause large shared prefixes in hashes. (as seen in geohashing)
sortable.encode([0]) === '011111111111111111111111111111111111111111111111111111111111';
sortable.decode(011111111111111111111111111111111111111111111111111111111111, 1) === -8.673617379884035e-17
sortable.encode([10, 11, -10]) === '110001001001110110011001100100001011100110001001100110011011';
Hash a lat/lon array representing Röcken Germany
[10, -10, 10]
and then restore it, using different
hash sizes.
var sortable = require('sortable-hash');
var rocken = {lat: 51.2408, lon: 12.1161}
//normalize scalars to +-100
var normalized = [100*rocken.lat/180, 100*rocken.lon/90]
var hash = sortable.encode(normalized)
// => '110010010010000100101111010001010001001110011100001100111111'
sortable.decode(hash, 2);
// => [ 51.24080015346408, 12.116099959239364 ]
var lowerFidelityHash = sortable.encode(normalized, 10)
// => 1100100100
sortable.decode(lowerFidelityHash, 2)
// => [50.625, 14.0625]
var hexadecimalHash = parseInt(hash, 2).toString(16)
// => c9212f45139c300 (limited precision beyond 53bits)
note: If you need precision when converting integers above 53 bits consider using bigint
Hash the array values
, which may only contain Numbers in the range of
[-100, 100]
.
options
can either be an object with these possible keys:
precision
: Number of bits (read: length) of the resulting binary hashor a Number, in which case it sets options.precision
.
Decode string
into an Array of Numbers.
options
can either be an object with these possible keys:
num
: number of elements initially passed to hash.encode
. (required)Or a Number, in which case it sets options.num
With npm do:
$ npm install binary-sortable-hash
This is the idea of geohashes generalized for use with all numeric data and numbers of input fields.
binary-sortable-hash is a derivative of the awesome sortable-hash by @juliangrubber
FAQs
Hash an array of numbers into a sortable(ish) binary number.
We found that binary-sortable-hash 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.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.