2016-12-13 28 views
1
中使用libsodium.crypto_pwhash(Argon2)

我無法在Node項目中使用crypto_pwhash_str。我正確導入了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爲一些原因。

有沒有人有任何此庫的經驗或可以幫助我找出我做錯了什麼。節點相當新,所以我很迷茫。

+0

如果您嚴格需要氬氣2,爲什麼不使用[node-argon2](https://www.npmjs.com/package/argon2)? – ranisalt

回答

2

想通了。我(出於某種愚蠢的原因)認爲我設置爲4096的memlimit以MB爲單位進行測量,顯然它是以千字節爲單位測量的,並且具有可接受的最小值32768(32 MB)。它現在工作!