Go to file
Matt cc7b70b8e7 Added nMin and nMax config for scrypt-jane 2014-03-31 16:06:50 -06:00
scryptjane more 2014-03-30 04:12:48 -04:00
sha3 Init 2014-03-30 04:04:48 -04:00
.travis.yml Added nMin and nMax config for scrypt-jane 2014-03-31 16:06:50 -06:00
README.md readme typo 2014-03-30 05:20:20 -06:00
bcrypt.c Init 2014-03-30 04:04:48 -04:00
bcrypt.h Init 2014-03-30 04:04:48 -04:00
binding.gyp Init 2014-03-30 04:04:48 -04:00
index.js Init 2014-03-30 04:04:48 -04:00
keccak.c Init 2014-03-30 04:04:48 -04:00
keccak.h Init 2014-03-30 04:04:48 -04:00
multihashing.cc Added nMin and nMax config for scrypt-jane 2014-03-31 16:06:50 -06:00
package.json Added nMin and nMax config for scrypt-jane 2014-03-31 16:06:50 -06:00
quark.c Init 2014-03-30 04:04:48 -04:00
quark.h Init 2014-03-30 04:04:48 -04:00
scrypt.c Init 2014-03-30 04:04:48 -04:00
scrypt.h Init 2014-03-30 04:04:48 -04:00
scryptjane.c Init 2014-03-30 04:04:48 -04:00
scryptjane.h Init 2014-03-30 04:04:48 -04:00
scryptn.c Init 2014-03-30 04:04:48 -04:00
scryptn.h Should be building now 2014-03-30 02:30:15 -06:00
skein.c Should be building now 2014-03-30 02:30:15 -06:00
skein.h Init 2014-03-30 04:04:48 -04:00
stdint.h Init 2014-03-30 04:04:48 -04:00
x11.c Init 2014-03-30 04:04:48 -04:00
x11.h Init 2014-03-30 04:04:48 -04:00

README.md

node-multi-hashing

Cryptocurrency hashing functions for node.js.

Usage

Install

npm install multi-hashing

So far this native Node.js addon can do the following hashing algos

var multiHashing = require('multi-hashing');

var algorithms = ['quark', 'x11', 'scrypt', 'scryptn', 'scryptjane', 'keccak', 'bcrypt'];

var data = new Buffer("hash me good bro");

var hashedData = algorithms.map(function(algo){
    if (algo === 'scryptjane'){
        //scryptjane needs block.nTime and nChainStartTime (found in coin source)
        var yaCoinChainStartTime = 1367991200;
        var nTime = Math.round(Date.now() / 1000);
        return multiHashing[algo](data, nTime, yaCoinChainStartTime);
    }
    else{
        return return multiHashing[algo](data);
    }
});


console.log(hashedData);
//<SlowBuffer 0b de 16 ef 2d 92 e4 35 65 c6 6c d8 92 d9 66 b4 3d 65 ..... >

//Another example...
var hashedScryptData = multiHashing.scrypt(new Buffer(32));

Credits

  • NSA and NIST for creation or sponsoring creation of SHA2 and SHA3 algos
  • Keccak - Guido Bertoni, Joan Daemen, Michaël Peeters, and Gilles Van Assche
  • Skein - Bruce Schneier, Stefan Lucks, Niels Ferguson, Doug Whiting, Mihir Bellare, Tadayoshi Kohno, Jon Callas and Jesse Walker.
  • BLAKE - Jean-Philippe Aumasson, Luca Henzen, Willi Meier, and Raphael C.-W. Phan
  • Grøstl - Praveen Gauravaram, Lars Knudsen, Krystian Matusiewicz, Florian Mendel, Christian Rechberger, Martin Schläffer, and Søren S. Thomsen
  • JH - Hongjun Wu
  • Fugue - Shai Halevi, William E. Hall, and Charanjit S. Jutla
  • scrypt - Colin Percival
  • bcrypt - Niels Provos and David Mazières
  • X11, Hefty1, Quark creators (they just mixed together a bunch of the above algos)