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
var scrypt = require('scrypt.js')
var scrypt = require('scrypt.js/js')
var scrypt = require('scrypt.js/node')
scrypt(key, salt, n, r, p, dklen, progressCb)
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