使用 bcryptjs 模块在 Node.js 中加密密码
在提交表单时,有一些敏感数据(如密码)不得对任何人可见,甚至对数据库管理员也不可见。为了避免任何人都可以看到敏感数据,Node.js 使用“bcryptjs”。
该模块可以将密码存储为散列密码而不是明文。
bcryptjs 模块的安装:
- 您可以访问安装 bcryptjs 模块的链接。您可以使用此命令安装此软件包。
npm install bcryptjs
- 安装 bcryptjs 模块后,您可以使用命令在命令提示符中检查您的请求版本。
npm version bcryptjs
- 之后,您可以创建一个文件夹并添加一个文件,例如 index.js,要运行此文件,您需要运行以下命令。
node index.js
index.js
// Requiring module
const bcrypt = require('bcryptjs');
const password = 'pass123';
var hashedPassword;
// Encryption of the string password
bcrypt.genSalt(10, function (err, Salt) {
// The bcrypt is used for encrypting password.
bcrypt.hash(password, Salt, function (err, hash) {
if (err) {
return console.log('Cannot encrypt');
}
hashedPassword = hash;
console.log(hash);
bcrypt.compare(password, hashedPassword,
async function (err, isMatch) {
// Comparing the original password to
// encrypted password
if (isMatch) {
console.log('Encrypted password is: ', password);
console.log('Decrypted password is: ', hashedPassword);
}
if (!isMatch) {
// If password doesn't match the following
// message will be sent
console.log(hashedPassword + ' is not encryption of '
+ password);
}
})
})
})
运行应用程序的步骤:使用以下命令运行应用程序:
node index.js
输出:我们将在控制台屏幕上看到以下输出。
$2a$10$4DRBPlbjKO7WuL2ndpbisOheLfgVwDlngY7t18/ZZBFNcW3HdWFGm
Encrypted password is: pass123
Decrypted password is: $2a$10$4DRBPlbjKO7WuL2ndpbisOheLfgVwDlngY7t18/ZZBFNcW3HdWFGm