在Node中使用libsodium.crypto_pwhash(Argon2)

我无法获得crypto_pwhash_str在我的Node项目中工作。 我正确导入了libsodium-wrappers-sumo和libsodium-sumo库,并能成功调用其他函数。 我对有问题的函数的调用如下所示:

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

在这种情况下,密码只是字母“a”的string对象。

当我运行debugging器,并试图找出发生了什么问题,我得到这个内部的代码块:

 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

有没有人有任何与这个图书馆的经验,或可以帮助我弄清楚我做错了什么。 节点相当新,所以我很迷茫。

弄清楚了。 我(有些愚蠢的理由)认为memlimit ,我设置为4096,以MB为单位进行测量,显然它是以千字节为单位的,最小值为32768(32 MB)。 现在工作!

Interesting Posts