项目原始demo,不改动
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
Dieses Repo ist archiviert. Du kannst Dateien sehen und es klonen, kannst aber nicht pushen oder Issues/Pull-Requests öffnen.
 
 
 
 

32 Zeilen
999 B

  1. var checkParameters = require('./lib/precondition')
  2. var native = require('crypto')
  3. function nativePBKDF2 (password, salt, iterations, keylen, digest, callback) {
  4. checkParameters(password, salt, iterations, keylen)
  5. if (typeof digest === 'function') {
  6. callback = digest
  7. digest = 'sha1'
  8. }
  9. if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2')
  10. return native.pbkdf2(password, salt, iterations, keylen, digest, callback)
  11. }
  12. function nativePBKDF2Sync (password, salt, iterations, keylen, digest) {
  13. checkParameters(password, salt, iterations, keylen)
  14. digest = digest || 'sha1'
  15. return native.pbkdf2Sync(password, salt, iterations, keylen, digest)
  16. }
  17. /* istanbul ignore next */
  18. if (!native.pbkdf2Sync || native.pbkdf2Sync.toString().indexOf('keylen, digest') === -1) {
  19. exports.pbkdf2Sync = require('./lib/sync')
  20. exports.pbkdf2 = require('./lib/async')
  21. // native
  22. } else {
  23. exports.pbkdf2Sync = nativePBKDF2Sync
  24. exports.pbkdf2 = nativePBKDF2
  25. }