https://github.com/andidittrich/node.crypto-toolkit
:key: A set of utility functions/wrapper to simplify the development workflow
https://github.com/andidittrich/node.crypto-toolkit
base64url crypto-toolkit nodejs sha1 sha256 sha512
Last synced: about 1 month ago
JSON representation
:key: A set of utility functions/wrapper to simplify the development workflow
- Host: GitHub
- URL: https://github.com/andidittrich/node.crypto-toolkit
- Owner: AndiDittrich
- License: mit
- Created: 2016-05-29T16:01:47.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2017-04-14T12:04:35.000Z (about 9 years ago)
- Last Synced: 2025-10-10T04:38:50.871Z (8 months ago)
- Topics: base64url, crypto-toolkit, nodejs, sha1, sha256, sha512
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/crypto-toolkit
- Size: 4.88 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- License: LICENSE.md
Awesome Lists containing this project
README
Crypto-Toolkit
==============
A set of utility functions/wrapper to simplify the development workflow
```bash
$ 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](https://nodejs.org/api/crypto.html#crypto_class_hash) functions. Examples are available in [examples/hash.js](examples/hashes.js)
```js
// default hex encoding
var _hash = require('crypto-toolkit').Hash('hex');
console.log(_hash.sha256('Hello World'));
```
##### Initialization #####
```js
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](https://nodejs.org/api/buffer.html)
##### 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 ###
```js
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.
```js
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).
```js
// 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](https://github.com/AndiDittrich/Node.Crypto-Toolkit/issues)
License
-------
Crypto-Toolkit is OpenSource and licensed under the Terms of [The MIT License (X11)](http://opensource.org/licenses/MIT). You're welcome to contribute!