我想知道,使用bcryptjs的salt,固定下来,怎么让后端去获得
时间: 2024-01-08 09:03:44 浏览: 22
如果你想在代码中使用固定的salt值来加密密码,可以直接将该值硬编码在代码中,如下所示:
```javascript
const bcrypt = require('bcryptjs');
const salt = '$2a$10$0123456789012345678901'; // 将固定的salt值硬编码在代码中
const password = 'myPassword';
const hashedPassword = bcrypt.hashSync(password, salt);
console.log(hashedPassword); // 打印加密后的密码
```
在上述代码中,我们将固定的salt值`'$2a$10$0123456789012345678901'`硬编码在代码中,并使用`bcrypt.hashSync`方法将密码加密。这样每次使用该salt值加密密码时,得到的结果都将是一样的。
当然,将salt值硬编码在代码中并不是最佳实践,因为如果这个值被泄露,那么所有用户的密码都可能受到攻击。因此,更好的做法是将该值保存在配置文件中,或者使用环境变量等方式来获取该值。这样可以避免将敏感信息硬编码在代码中。
相关问题
怎么写出一个固定的的bcryptjs的salt序列
在bcryptjs中,可以使用`genSaltSync`方法来生成一个固定的salt序列。以下是一个示例代码:
```javascript
const bcrypt = require('bcryptjs');
const salt = bcrypt.genSaltSync(10);
console.log(salt); // 打印生成的salt序列
```
在上述代码中,`genSaltSync`方法的参数10表示生成salt时的计算强度,越高表示计算时间越长,但也越安全。生成的salt序列可以被保存在代码中,以便在后续的加密过程中使用。
给出一个相对安全的bcryptjs的salt序列
bcryptjs 的 salt 序列是随机生成的,因此没有一个固定的安全的 salt 序列。一般建议使用 bcryptjs 提供的生成 salt 的函数来生成随机的 salt。如果你想要自己指定 salt,可以使用 bcryptjs 提供的 `bcryptjs.genSaltSync(rounds)` 方法,其中 `rounds` 参数表示计算强度,越高则计算时间越长,安全性也越高。一般建议设置为 10 到 12 之间,例如:
```javascript
const bcrypt = require('bcryptjs');
const salt = bcrypt.genSaltSync(10);
const hash = bcrypt.hashSync('myPassword', salt);
```
这样生成的 salt 序列是相对安全的,但是不如使用 bcryptjs 自带的随机生成函数安全。