A set of utility functions/wrapper to simplify the development workflow
$ yarn add crypto-magic- Hash Function Wrapper (MD5, SHA1, SHA244, SHA256, SHA384, SHA512, WHIRLPOOL)
- Create Object/Array Hashes based on its JSON representation
- UUIDv4 generator usinc async crypto api
randomBytes - base64 urlsafe encoder/decoder
Provides easy access to the Node.js Crypto Hash functions. Examples are available in examples/hash.js
const{hash}=require('crypto-magic');console.log(hash.sha256('Hello World'));The argument encoding is optional and defines the output encoding of the digest.
- hex (default) - hexadecimal string output
- base64 - base64 string output
- base64urlsafe - url-safe base64 string output (/+= are replaced by _-)
- binary - binary output as Buffer
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])
const{hash}=require('crypto-magic');// some inputconstinput='Hello World';// display some hashesconsole.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 typeconsole.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/Arrays are automatically serialized as JSON String. The JSON object is then passed into the hash function.
const{hash}=require('crypto-magic');// demo objectconstobjectInput={x: 1,b: 2,c: [5,6,7],d: {y: 'Hello',z: 'World'}};console.log('Object Input');console.log(' |- SHA256 ',hash.sha256(objectInput));Create random hashes easily. Just calls the crypto-magic.hash functions with a random content generated by crypto-magic.random(514) - helpful for random URLs or filenames (e.g. cache hashes).
// url-safe base64const{randomHash}=require('crypto-magic');// all hash function of crypto-magic.hash are supportedconsole.log(awaitrandomHash.sha256('base64urlsafe'));// output like b7qhqd-WnKAH_GmBpSpvQrdkfUdLxL0m__XGcLTRsbIcrypto-magic is OpenSource and licensed under the Terms of The MIT License (X11) - your're welcome to contribute