crypto-extra
v1.0.1
Published
Convenience methods for the crypto module
Downloads
57,365
Maintainers
Readme
Crypto-Extra for Node.js
Adds convenience methods to the native Node.js crypto module. It is a drop in replacement, and extends the original module functionality.
Why?
The native crypto
module can be a pain to work with, and requires a lot of boilerplate to do things such as randomizing and encryption. This abstracts all of that.
Getting Started
$ npm install crypto-extra --save
To use in your project, simply require into your project as you would the crypto
module.
const crypto = require("crypto-extra")
crypto.randomString()
//= L0e84MUt0n
crypto.hash("hello")
//= 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
API
.encrypt (value, secretKey)
Encrypts a value with a secret key using AES-256-CTR.
value - The value you want to encrypt. Everything (except objects) is converted to a string before encryption for consistency. Objects are stringified using
JSON.stringify
.Type:
any
secretKey - The key used in the encryption. If not supplied, the lib will fallback to the environment variable
ENCRYPTION_KEY
.Type:
string
Default:process.env.ENCRYPTION_KEY
.decrypt (value, secretKey)
Decrypts a value using AES-256-CTR.
value - The encrypted value you want to decrypt. Will automatically parse objects that were encrypted.
Type:
string
secretKey - The key used in the encryption. If not supplied, the lib will fallback to the environment variable
ENCRYPTION_KEY
.Type:
string
Default:process.env.ENCRYPTION_KEY
.hash (value, options)
Hashes a string with the provided algorithm.
value - The value you want to hash. Any non-string value is converted to a string before hashing for consistency.
Type:
string
options
rounds - The number of rounds to use when hashing.
Type:
integer
Default:1
salt - A string to be appended to the value before it is hashed.
Type:
string
algorithm - The hashing algorithm to use.
Type:
string
Default:SHA256
.randomKey (length)
Generates a random 256-bit key that can be used as an encryption key.
length - The length of the key you want to generate. Must be an even number.
Type:
number
Default:32
.randomString (length, charset)
Returns a random string of a defined length.
length - Length of the random string. Must be above 0.
Type:
integer
Default:10
charset - The character set to take from.
Type:
string
Default:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
.randomNumber (options)
Returns a random string within a defined range.
options
min - Minimum number of range. Must be a positive integer.
Type:
integer
Default:0
max - Maximum number of range. This cannot be higher than
9007199254740991
due to Javascript integer limits (http://mzl.la/1A1nVyU). If you need a number higher than this, consider using randomString with the charset0123456789
instead.Type:
integer
Default:9007199254740991