如何使用browserify

时间:2015-12-30 13:21:13

标签: javascript browserify

我需要在浏览器上使用crypto.pbkdf2

我使用browserify来创建我的javascript文件。当迭代次数大于1000时,异步PBKDF2函数会完全冻结我的浏览器。

pbkdf2 freeze

RequireBin example

var crypto = require('crypto');
var iterations = 10;
// var iterations = 8192; // uncomment to freeze the browser
crypto.pbkdf2('password', 'salt', iterations, 32, 'sha256', function (error, key) {
    console.log(key.toString('hex'));
});

如何使用browserify运行节点加密模块?

编辑:

这里是browserify创建的代码,用于声明pbkdf2

exports.pbkdf2 = pbkdf2
function pbkdf2 (password, salt, iterations, keylen, digest, callback) {
  if (typeof digest === 'function') {
    callback = digest
    digest = undefined
  }

  if (typeof callback !== 'function') {
    throw new Error('No callback provided to pbkdf2')
  }

  var result = pbkdf2Sync(password, salt, iterations, keylen, digest)
  setTimeout(function () {
    callback(undefined, result)
  })
}

1 个答案:

答案 0 :(得分:1)

要解决我的问题,请使用npm中的pbkdf2模块:https://github.com/crypto-browserify/pbkdf2

npm install --save pbkdf2

此软件包实现browser version并代理node version

根据您要访问的目标(浏览器或节点),您的bundler(browserify或webpack)将加载相应的版本。

var pbkdf2 = require('pbkdf2');
pbkdf2.pbkdf2(password, salt, iterations, keylen, digest, function(error, key) {
...
});