Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

crypto-extra

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

crypto-extra

Convenience methods for the crypto module

  • 1.0.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

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

Keywords

FAQs

Package last updated on 22 Oct 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc