Guest User

Untitled

a guest
Dec 14th, 2018
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.72 KB | None | 0 0
  1. crypto = require 'crypto'
  2.  
  3. hasher = (opts, callback) ->
  4. # Generate random 8-character base64 password if none provided
  5. if not opts.plaintext
  6. return crypto.randomBytes 6, (err, buf) ->
  7. callback err if err
  8. opts.plaintext = buf.toString 'base64'
  9. hasher opts, callback
  10. # Generate random 512-bit salt if no salt provided
  11. if not opts.salt
  12. return crypto.randomBytes 64, (err, buf) ->
  13. callback err if err
  14. opts.salt = buf
  15. hasher opts, callback
  16. # Node.js PBKDF2 forces sha1
  17. opts.hash = 'sha1'
  18. opts.iterations = opts.iterations ? 10000
  19. crypto.pbkdf2 opts.plaintext, opts.salt, opts.iterations, 64, (err, key) ->
  20. callback err if err
  21. opts.key = new Buffer(key)
  22. callback null, opts
Add Comment
Please, Sign In to add comment