Crypto-Toolkit
DEPRECATED
superseded by crypto-magic
A set of utility functions/wrapper to simplify the development workflow
$ npm install crypto-toolkit
Features
- Hash Function Wrapper (MD5, SHA1, SHA244, SHA256, SHA384, SHA512, WHIRLPOOL)
- Create Object/Array Hashes based on its JSON representation
Hash Function Wrapper
Provides easy access to the Node.js Crypto Hash functions. Examples are available in examples/hash.js
// default hex encoding
var _hash = require('crypto-toolkit').Hash('hex');
console.log(_hash.sha256('Hello World'));
Initialization
require('crypto-toolkit').Hash([encoding:string])
The argument encoding
is optional and defines the output encoding of the digest.
- hex (default) - hexadecimal string output
- base64 - base64 string output
- base64-urlsafe - url-safe base64 string output (/+= are replaced by _-)
- binary - binary output as Buffer
Hash Algorithms
The following wrappers are included:
md5(input:mixed, [encoding:string])
sha1(input:mixed, [encoding:string])
sha2(input:mixed, [encoding:string])
sha224(input:mixed, [encoding:string])
sha256(input:mixed, [encoding:string])
sha384(input:mixed, [encoding:string])
sha512(input:mixed, [encoding:string])
whirlpool(input:mixed, [encoding:string])
General Usage
var _hash = require('crypto-toolkit').Hash('hex');
// some input
var input = 'Hello World';
// display some hashes
console.log('Default HEX Output');
console.log(' |- MD5 ', _hash.md5(input));
console.log(' |- SHA1 ', _hash.sha1(input));
console.log(' |- SHA256 ', _hash.sha256(input));
console.log(' |- SHA384 ', _hash.sha384(input));
console.log(' |- SHA512 ', _hash.sha512(input));
console.log(' |- WHIRLPOOL', _hash.whirlpool(input));
// override the default output type
console.log('Override the default output settings');
console.log(' |- HEX ', _hash.sha1(input, 'hex'));
console.log(' |- BIN ', _hash.sha1(input, 'binary'));
console.log(' |- BASE64 ', _hash.sha1(input, 'base64'));
console.log('');
Objects
Objects/Arrays are automatically serialized as JSON String. The JSON object is then passed into the hash function.
var _hash = require('crypto-toolkit').Hash('hex');
// demo object
var objectInput = {
x: 1,
b: 2,
c: [5,6,7],
d: {
y: 'Hello',
z: 'World'
}
};
console.log('Object Input');
console.log(' |- SHA256 ', _hash.sha256(objectInput));
console.log('');
Random Hash Generator
Create random hashes easily. Just calls the crypto-toolkit.Hash
functions with a random content generated by crypto.randomBytes(514)
- helpful for random URLs or filenames (e.g. cache hashes).
// url-safe base64
var _randomhash = require('crypto-toolkit').RandomHash('base64-urlsafe');
// all hash function of crypto-toolkit.Hash are supported
console.log(_randomhash.sha256());
// output like b7qhqd-WnKAH_GmBpSpvQrdkfUdLxL0m__XGcLTRsbI
Any Questions ? Report a Bug ? Enhancements ?
Please open a new issue on GitHub
License
Crypto-Toolkit is OpenSource and licensed under the Terms of The MIT License (X11). You're welcome to contribute!