@fntools/crypto
v1.0.0
Published
A lightweight encryption library that outputs hashes as JSON for using in the server and in any browser based storage
Downloads
16
Maintainers
Readme
A lightweight encryption library that outputs hashes as JSON for using in the server and in any browser based storage
Instalation
# NPM
$ npm i @fntools/crypto --save
# YARN
$ yarn add @fntools/crypto
Importing package
// ESM
import crypto from "@fntools/crypto";
// CJS
const crypto = require("@fntools/crypto");
Get Started
Primary Usage
import crypto from "@fntools/crypto";
// encrypt
const encrypted = crypto.encrypt("some data", "some-password", "some-salt");
// decrypt
crypto.decrypt(encrypted, "some-password", "some-salt");
Using Callback
// encrypting
crypto.encrypt("some-data", "some-password", "salt", (data) => {
// ...do something cool
}, (err) => {
// ...handle error
})
// decrypting
crypto.decrypt("some-hash", "some-password", "salt", (data) => {
// ...do something cool
}, (err) => {
// ...handle error
})
Promise Approach
crypto.async.encrypt("some-data", "some-password", "salt").then((data) => {
// ...do something cool
}).catch((err) => {
// ...handle error
})
// decrypting
crypto.async.decrypt("some-hash", "some-password", "salt").then((data) => {
// ...do something cool
}).catch((err) => {
// ...handle error
})
API Documentation
Crypto#Encrypt
crypto.encrypt(data:any , password:string, salt?:string, callback?:function, errorCallback?:function);
Parameters
data Any type as long as it can be conveted to string or JSON
password Required password for incrypting the given data
salt Optional secret key that differ each data even if given the same data or password
callback:Function(data:string) Optional callback function called when encryption is a success
errorCallback:?Function(err:Error) Optional callback that will handle encryption error
Crypto#Decrypt
crypto.decrypt(hash:string|JSON, password:string, salt?:string, callback:Function, errorCallback:function)
Parameters hash Hash string or JSON object that contains all the needed data for decryption
password Required password for decrypting hash
salt Optional given only when there is salt when encryping
callback:Function(data:string) Optional callback function called when decryption is a success
errorCallback:?Function(err:Error) Optional callback that will handle decryption error
NOTE: if it is incrypted with salt it can't be decrypted without salt
Promise and Async Environment
Promise
// just replace the callbacks with .then and .catch
crypto.async.encrypt("some-data", "some-password", "salt").then((data) => {
// ...do something cool
}).catch((err) => {
// ...handle error
})
// decrypting
crypto.async.decrypt("some-hash", "some-password", "salt").then((data) => {
// ...do something cool
}).catch((err) => {
// ...handle error
})
Async, Await
// encryption
const encrypted = await crypto.async.encrypt("some-data", "some-password", "salt")
// decrypting
const decryptedData = await crypto.async.decrypt(encrypted, "some-password", "salt");