我无法让crypto_pwhash_str
在我的Node项目中工作。我正确地导入了libsodium-wrappers-sumo和libsodium-sumo库,并且能够成功调用其他函数。我对有问题函数的调用如下所示:
sodium.crypto_pwhash_str(password, 3, 4096, 'text')
在这种情况下,password只是一个字母“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非常新,所以我很遗憾。
答案 0 :(得分:3)
想出来。我(出于某种愚蠢的原因)认为memlimit
,我设置为4096,以MB为单位测量,显然它以千字节为单位,并且具有可接受的最小值32768(32 MB)。它现在有效!