Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including scryptsy with all npm packages installed. Try it out:

var scryptsy = require("scryptsy")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

scryptsy v2.0.0

Pure JavaScript implementation of the scrypt key deriviation function that is fully compatible with Node.js and the browser.


build status Coverage Status Version

scryptsy is a pure Javascript implementation of the scrypt key derivation function that is fully compatible with Node.js and the browser (via Browserify).


Scrypt is an integral part of many crypto currencies. It's a part of the BIP38 standard for encrypting private Bitcoin keys. It also serves as the proof-of-work system for many crypto currencies, most notably: Litecoin and Dogecoin.


npm install --save scryptsy


var scrypt = require('scryptsy')

var key = "pleaseletmein"
var salt = "SodiumChloride"
var data = scrypt(key, salt, 16384, 8, 1, 64)
// => 7023bdcb3afd7348461c06cd81fd38ebfda8fbba904f8e3ea9b543f6545da1f2d5432955613f0fcf62d49705242a9af9e61e85dc0d651e40dfcf017b45575887


scrypt(key, salt, N, r, p, keyLenBytes, [progressCallback])

  • key: The key. Either Buffer or string.
  • salt: The salt. Either Buffer or string.
  • N: The number of iterations. number (integer)
  • r: Memory factor. number (integer)
  • p: Parallelization factor. number (integer)
  • keyLenBytes: The number of bytes to return. number (integer)
  • progressCallback: Call callback on every 1000 ops. Passes in {current, total, percent} as first parameter to progressCallback().

Returns Buffer.





RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free