2

crypto_pwhash_str我在我的 Node 项目中工作时遇到了麻烦。我正确导入了 libsodium-wrappers-sumo 和 libsodium-sumo 库,并且能够成功调用其他函数。我对有问题的函数的调用如下所示:

sodium.crypto_pwhash_str(password, 3, 4096, 'text')

在这种情况下,密码只是一个带有字母“a”的字符串对象。

当我运行调试器并试图找出问题所在时,我得到了这个内部代码块:

if ((libsodium._crypto_pwhash_str(hashed_password_address, password_address, password_length, 0, opsLimit, 0, memLimit) | 0) === 0) {
  var ret = libsodium.Pointer_stringify(hashed_password_address);
  _free_all(address_pool);
  return ret;
}
_free_and_throw_error(address_pool);

由于某种原因,它无法进入 for 循环并且对_crypto_pwhash_str()评估的调用。-1

有没有人对这个库有任何经验或者可以帮助我找出我做错了什么。对 Node 来说相当新,所以我很迷茫。

4

1 回答 1

4

弄清楚了。我(出于某种愚蠢的原因)认为memlimit,我设置为 4096,以 MB 为单位,显然它以千字节为单位,并且可接受的最小值为 32768(32 MB)。现在可以了!

于 2016-12-13T21:58:58.567 回答