Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

crypto-extra

jsonmaur48kMIT1.0.1TypeScript support: included

Convenience methods for the crypto module

crypto, cryptography, hash, encrypt, decrypt, encryption, decryption, sha1, md5, aes256, random, hex, cipher, extra

readme

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

changelog

Crypto Extra Changelog

v1.0

  • Removed manual type checking in favor of Typescript
  • Renamed generateKey to randomKey

v0.4

v0.3

  • Removed npmjs.org/bcryptjs package in favor of npmjs.org/bcrypt, which relies on node-gyp for faster results.
  • Removed .checksum and .checksumSync. Use this package instead.
  • Renamed .bcrypt to .bcryptHash to be more consistent.
  • Removed .bcryptSync and .bcryptCompareSync in favor of promised versions.
  • Added length option to .generateKey.

Removed Deprecations

  • .decrypt that was used before encryption IV was implemented.
  • Old version of .random.
  • Specifying options.length on .randomString.
  • Old consolidated version of .bcrypt that was hash and compare in one.