crypto-extra

Convenience methods for the crypto module


Keywords
crypto, cryptography, hash, encrypt, decrypt, encryption, decryption, sha1, md5, aes256, random, hex, cipher, extra
License
MIT
Install
npm install crypto-extra@1.0.1

Documentation

Crypto-Extra for Node.js

Build Status Coverage Status

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 charset 0123456789 instead.

      Type: integer
      Default: 9007199254740991

License

MIT © Jason Maurer