我正在尝试创建密码哈希功能,并且Node的crypto.pbkdf2返回void。这是否意味着我必须在回调函数中设置值?我是编程的新手,所以我从未对回调有深入的了解-我更习惯于Promises和async / await。
我的假设是pbkdf2会生成哈希密码并返回它-因此,我不确定该void方法该怎么做,或者它如何有用。
我注意到我可以改用pbkdf2Sync-我想我可以将其与async函数一起包装-但这似乎是试图绕过pbkdf2与pbkdfs2Sync的设计决定。
这就是我最终尝试的-任何反馈,包括我的keylen属性是否合适,我们将不胜感激-我只是基于Crypto文档。
private hashPassword(password, salt):string {
let hashedPassword:string;
const iterations = 50000;
const keylen = 64;
const digest = 'sha512';
crypto.pbkdf2(password, salt, iterations, keylen, digest, (err, derivedKey) => {
if (err) throw err;
hashedPassword = derivedKey.toString();
console.log(derivedKey);
})
return hashedPassword;
}