我正在使用argon2和nodejs,并且我正在尝试验证密码:
global.user = [{username:"u1", password:"hidden"}];
// run the password in the argon2 hashing alg
const signup = async function(password) {
// hash password using argon2i (mainly for passwords)
var key = await argon2.hash(password, {
type: argon2.argon2i,
timeCost: 200,
hashLength: 128,
});
return key;
}
var k = signup(req.body.password);
k.then(function(result) {
console.log(result);
global.user.push({username:req.body.username, password:result})
res.json(global.user);
})
var success = false;
if(argon2.verify(item.password, "meow")) {
console.log(req.body.password);
console.log(item.password);
success = true;
}无论我将哈希值与什么值进行比较,argon2.ify()总是返回true,但我不确定为什么。
发布于 2020-05-05 23:44:04
这是因为argon2.verify返回一个promise,当隐式转换为布尔值时,promise为true。请改用await argon2.verify。
https://stackoverflow.com/questions/56511085
复制相似问题