首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scrypt在verifyKdf上失败,只有“错误”

Scrypt在verifyKdf上失败,只有“错误”
EN

Stack Overflow用户
提问于 2016-12-03 10:00:07
回答 1查看 144关注 0票数 0

我已经设置了氪星和哈希- KDF -工作正常。

但是,每当我尝试verifyKdf()时,我都会得到一个错误。

返回scryptNative.verifySync(args,args1);^ 错误 在(/home/arc/Desktop/scrypt-test/node_modules/scrypt/index.js:331:25) Object.verifyKdfSync

我的密码来破解它。

代码语言:javascript
复制
// a promise chain...

.then(() => scrypt.kdf(newPassword, scryptParameters))
.then(hashedPassword => {

    user.hashedPassword = hashedPassword.toString('base64')

    resolve(store.save(user.id, user))

})

然后验证:(这里它属于catch()err简单包含"Error")

代码语言:javascript
复制
scrypt.verifyKdf(user.hashdPassword, enteredPassword)
    .then(result => {
            if (result) return resolve(user)
            else return reject('Wrong password')
     })
     .catch(err => {
            console.log('scrypt verify failed: ', err)
            return reject('Internal Error')
     })
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-03 10:00:07

问题是使用了.toString('base64')。虽然这本身并不是问题,但您必须将其还原回缓冲区。

要修复它,请使用new Buffer( /* Password */ , 'base64'),如下所示:

代码语言:javascript
复制
scrypt.verifyKdf(new Buffer(user.hasdPassword, 'base64'), password)

当使用base64 hex时,此解决方案也同样有效。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40946504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档