Socket
Socket
Sign inDemoInstall

bebb4185

Package Overview
Dependencies
1
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    bebb4185

A super-fast SMHasher-passing non-cryptographic hash function.


Version published
Weekly downloads
12
Maintainers
1
Install size
719 kB
Created
Weekly downloads
 

Readme

Source

:city_sunrise: Discohash

2 - 5 GB/s, passed SMHasher version npm downloads

Discohash (also known as BEBB4185) is a super-fast hash that passes all of SMHasher, and runs at 2 - 5 GB/s (depending on hardware) in this naive, portable implementation.

CLI app included


Quick Facts

  • A super-fast 64-bit hash.
  • Tested at ~ 5GB/s @ 3Gz.
  • Passes all SMHasher tests.
  • Also known as: BEBB4185
  • Implemented in C++, and also a port to JS
  • This repo includes a simple CLI app for hashing files or stdin from the command line.

Using

Use the C code from this repository, either in your project or as a CL-app (included):

cd src
./build.sh
./bin/bebbsum < 0xa2a647993898a3df.txt
> 0xa2a647993898a3df
./bin/bebbsum 0xa2a647993898a3df.txt
> 0xa2a647993898a3df

or, for a JS implementation:

npm i --save bebb4185

Use in Node.JS:

import {discohash} from 'bebb4185'

Or using Snowpack as a webmodule:

import {discohash} from './web_modules/bebb4185.js';

Then call it:

const hash = discohash(string_or_typed_array_key, optional_seed);

JS Implementation

  • The JS Implementation produces the same value hashes as the C++ implementation.
  • The JS implementation is ~ 500x slower than the C++ implementation.
  • This is probably because of the use of BigInts to stand in for uint64_t
  • It's possible to implement a 64-bit mult using 32-bit view which would remove the need for BigInt. I have no plan to do this.

SMHasher verification value

The value is: BEBB4185

Possible future work

Make a parallel version using Merkle tree

Keywords

FAQs

Last updated on 17 Feb 2020

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc