解决安装bcrypt失败问题

安装bcrypt的步骤

安装依赖环境

1. python 2.x
2. node-gyp
npm install -g node-gyp
3. windows-build-tools
npm install --global --production windows-build-tools

安装bcrypt

npm install bcrypt

安装失败解决方法

第一种

//1.先全局删除依赖node-gyp

npm -g uninstall node-gyp  全局删除  node-gyp
//2.再次全局安装依赖

npm install node-gyp -g
//3.安装bcrypt
npm install bcrypt

第二种 使用bcryptjs替代

bcryptjs是一个第三方密码加密库,是对原有bcrypt的优化,优点是不需要安装任何依赖

//1.安装bcryptjs
npm install bcryptjs
//2.引入bcryptjs库
var bcrypt = require('bcryptjs');
//3.使用bcryptjs

如何使用bcryptjs

异步使用

//生成hash密码
/*
bcryptjs.genSalt(salt,func);
salt用于哈希密码的盐。如果指定为数字,则将使用指定的轮数生成盐并将其使用,推荐 10,数值越大 生成的随机字符串复杂度越高,数值越小 生成的随机字符串复杂度越低,该方法返回一个随机字符串
func回调函数
bcryptjs.hash(data,salt,func);
data要加密的数据,字符串类型
salt加密使用的盐
func回调函数
*/
var bcryptjs = require('bcryptjs');
bcryptjs.genSalt(10, function(err, salt) {
    bcryptjs.hash("123456", salt, function(err, hash) {
        console.log(hash);//每次调用生成的结果都不一样     
    });
});
//验证密码
/*
bcryptjs.compare(data,hash,function(err,res){});
data需要比较的数据,从前端传递过来的密码
hash是从数据库查询出来加密过的密码
function(err,res)回调函数,err是错误信息,res是比对的结果,boolean值,如果相等则为true,否则为false
一般回调函数中的第一个参数都是指错误信息
*/
bcryptjs.compare("123456", hash, function(err, res) {
    // res === true //匹配成功
});
bcryptjs.compare("not_bacon", hash, function(err, res) {
    // res === false //匹配失败
});
  
bcryptjs.compare("123456", hash).then((res) => {
//bcryptjs.compare方法返回一个promise对象,使用.then处理成功的情况.catch处理失败的情况,并且可以链式处理
    // res === true 
});
//快速生成hash值
bcryptjs.hash('bacon', 8, function(err, hash) {
});

同步使用

生成hash密码

var bcryptjs = require('bcryptjs');
var salt = bcryptjs.genSaltSync(10);
var hash = bcryptjs.hashSync("123456", salt);


密码验证
/*
bcryptjs.compareSync(data, encrypted)
 *    - data        要比较的数据, 使用登录时传递过来的密码
 *    - encrypted   要比较的数据, 使用从数据库中查询出来的加密过的密码
*/

bcryptjs.compareSync("123456", hash); // true 匹配相等的情况
bcryptjs.compareSync("89990", hash); // false 匹配不相等的情况



快速生成hash值
/*
 bcryptjs.hashSync(data, salt)
 *    - data  要加密的数据
 *    - slat  用于哈希密码的盐。如果指定为数字,则将使用指定的轮数生成盐并将其使用。推荐 10
*/

var hash = bcryptjs.hashSync('bacon', 8);

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
引用中提到了一个在安装bcrypt时可能会遇到的问题。在Windows系统上安装bcrypt时,可能会收到一堆npm ERR错误。根据引用,解决这个问题的方法是安装Windows的构建工具,可以使用命令`npm install --g --production windows-build-tools`来安装。这将安装一些必要的工具和依赖,以便成功编译bcrypt。 另外,引用给出了一个使用bcrypt生成随机哈希密码的示例。可以看到,每次生成的密码都是随机的,这增加了安全性。如果您在安装bcrypt时遇到了问题,可以尝试使用上述方法来解决。 希望这能帮助您解决nodejs安装bcrypt失败问题。如果还有其他疑问,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [解决windows10,nodejs 无法安装 Bcrypt](https://blog.csdn.net/weixin_40677825/article/details/119105025)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Nodejs使用npm安装 bcrypt 提示npm ERR错误](https://blog.csdn.net/m0_73194953/article/details/127817789)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [[ Nodejs ] MD5 | Bcrypt 数据加密](https://blog.csdn.net/haodian666/article/details/126246096)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值