我尝试哈希并将密码存储到数据库中。 所以我将libsodium与crypto_pwhash一起用于节点应用程序。 我创建了一个函数,导出它,但我无法收到哈希密码。
这是我的代码: sodium.js
libsodium = require('libsodium-wrappers-sumo');
(async() => {
await libsodium.ready;
const sodium = libsodium;
module.exports.password_hash = function(password, res){
var hashed_password = [sodium.crypto_pwhash_STRBYTES];
if (sodium.crypto_pwhash_str ( sodium.crypto_pwhash_MEMLIMIT_SENSITIVE) != 0){
/* out of memory */
}
return res(hashed_password);
}
/*if (sodium.crypto_pwhash_str_verify
(hashed_password, PASSWORD, strlen(PASSWORD)) != 0) {
/* wrong password */
//}
})();
app.js
sodium.password_hash("test", function(res){
console.log(res);
});
错误消息为:密码输入类型不受支持。
我不明白出了什么问题
更新:我更新了我的代码, 现在消息错误是:定义时,输出格式必须是字符串 我认为这是数组的一个问题
答案 0 :(得分:0)
sodium.crypto_pwhash_str将哈希密码返回为字符串,不需要第一个参数