Giter VIP home page Giter VIP logo

scrypt.js's Introduction

scrypt.js

This purpose of this library is to provide a single interface to both a C and a pure Javascript based scrypt implementation. Supports browserify and will select the best option when running under Node or in the browser.

It is using the following two underlying implementations:

  • scryptsy for the pure Javascript implementation
  • scrypt for the C version

It only supports hashing. Doesn't offer an async option and doesn't implement the HMAC format. If you are looking for those, please use the Node scrypt library.

API

There is only one method returned for hashing using scrypt. All parameters are mandatory except the progress callback:

  • key - The key/passphrase. Although it accepts a String, please use a Buffer to avoid problems later.
  • salt - The salt. Same as with the key, please try to use a Buffer.
  • n - Iteration count.
  • r - Block size for the underlying hash.
  • p - Parallelization factor.
  • dklen - The derived key length aka. output size.

Example usage

// Load default implementation
var scrypt = require('scrypt.js')

// Load specific version
var scrypt = require('scrypt.js/js') // pure Javascript
var scrypt = require('scrypt.js/node') // C on Node

scrypt(key, salt, n, r, p, dklen, progressCb) // returns Buffer

The progress callback

This callback (progressCb in the above example) is not available on Node.

Every 1000 iterations it will return an object with the following properties:

  • current - Current iteration number.
  • total - Total iterations.
  • percent - Progress in percentage (double).

Other scrypt implementations

scrypt.js's People

Contributors

axic avatar ashwinphatak avatar egorgripasov avatar kumavis avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.