NodeJS 6加密抱怨弃用消息中的摘要?

时间:2016-05-06 22:35:32

标签: node.js node-crypto

我试图在我的NodeJS应用程序中使用本机加密模块,但我不断收到弃用消息:

  

(node:26)DeprecationWarning:crypto.pbkdf2,未指定   摘要已弃用。请指定摘要

我知道这是由于期望摘要向前推进的更改集所致: https://github.com/nodejs/node/pull/4047

但是,从我所看到的情况来看,我的代码完全遵循语法as outlined in the docs。其他人看到我在这里做错了什么?

function verify (password, expected, callback) {
  const combined = Buffer.from(expected, 'base64')
  const saltBytes = combined.readUInt32BE(0)
  const hashBytes = combined.length - saltBytes - 8
  const iterations = combined.readUInt32BE(4)
  const salt = combined.slice(8, saltBytes + 8)
  const hash = combined.toString('binary', saltBytes + 8)
  return crypto.pbkdf2(password, salt, iterations, hashBytes, 'sha512', (err, verify) => {
    if (err) return callback(err, false)
    return callback(null, verify.toString('binary') === hash)
  })
}

注意:如果它有任何区别,则会在slim version of the node:6

内执行

1 个答案:

答案 0 :(得分:0)

经过多次挖掘,我终于明白了。它与上面的代码段无关。我正在使用当前版本为4.0.0的iron模块。当前发布的版本不会传递摘要的参数,这会导致生成警告消息。

他们already committed code to correct this,但尚未发布。这应该很快解决。