当前位置:  开发笔记 > 编程语言 > 正文

为什么在bcrypt中比较密码是否正确需要盐?

如何解决《为什么在bcrypt中比较密码是否正确需要盐?》经验,为你挑选了1个好方法。

我想在将数据存储到数据库之前使用node.js bcrypt来哈希密码.

此链接提供文档. https://github.com/kelektiv/node.bcrypt.js

以下是散列密码的示例.

var bcrypt = require('bcrypt');
const saltRounds = 10;
const myPlaintextPassword = 's0/\/\P4$$w0rD';

var salt = bcrypt.genSaltSync(saltRounds);
var hash = bcrypt.hashSync(myPlaintextPassword, salt);
// Store hash in your password DB.

这是检查密码的代码.

// Load hash from your password DB.
bcrypt.compareSync(myPlaintextPassword, hash); // true

这是我不明白的.在bcrypt.compareSync,为什么没有参数salt?由于散列是从salt生成的,为什么比较明文密码不涉及散列中使用的原始盐?



1> rypskar..:

salt是数据库中字符串bcrypt存储的一部分,请参阅例如答案我是否需要使用bcrypt存储salt?


不,它没有.盐必须始终可用,将其与哈希一起存储或单独对安全性没有区别.盐的目的是防止彩虹表攻击,并且为此目的,如果攻击者有盐,则不是问题.
推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有