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);
安装bcrypt的步骤安装依赖环境1. python 2.x2. node-gypnpm install -g node-gyp3. windows-build-toolsnpm install --global --production windows-build-tools安装bcryptnpm install bcrypt安装失败解决方法第一种//1.先全局删除依赖node-gypnpm -g uninstall node-gyp 全局删除 node-
今天在使用bcrypt进行加密时出现了一点问题,忽然想起来,之前安装cypress时也出现这个问题,看来是和我的python包有关系。
问题描述
首先,在安装bcrypt时,总是会卡住:
bcrypt...
或者直接报错:
G:\nodejs\moviesite\node_modules\bcrypt>if not defined npm_config_node_gyp (node
解决由bcrypt引起的node包安装失败问题
最近在学习node做阿里百秀项目时遇到了一个问题,就是在原有的那个项目里,使用npm install 安装不了模块。看了下报错是由 bcrypt引起的,bcrypt就是一款加密工具,可以比较方便地实现数据的加密工作,在项目里使用他来加密登录密码,但不知道为什么他出现报错。
在网上找了很多资料,有的说时pyhton环境出错,有的说是版本不兼容,还有的说用bcryptjs替代,都有道理,但没有解决,后来我找到一个解决的方法,方法来源:https://www.it6
安装bcrypt时发生了错误,在网上搜了一圈,有位大兄弟说的很好,大多数错误都和版本不兼容有关。
以我自己为例,我的
Node.js的版本是10.17.0,使用【npm install
bcrypt -g】时,下载的
bcrypt是最新版本的,和我的
Node.js不兼容。
根据官网的版本支持:
用【npm install
bcrypt@3.0.0 -g 】下载,
问题解决,
安装完成~
安装bcrypt 报node-pre-gpy错误
node-pre-gyp http GET https://github.com/kelektiv/node.bcrypt.js/releases/download/v1.0.3/bcrypt_lib-v1.0.3-node-v57-win32-x64.tar.gz
node-pre-gyp http 404 https://github.com
在各个导入bcrypt的js文件中更改bcrypt为bcryptjs(因为bcrypt需要较多的依赖,bcryptjs与其功能相同但所需依赖较少,笔者之前也尝试安装bcrypt包括更改node版本,下载window-tools,但失败了,
//导入bcryptjs
constbcrypt=require('bcryptjs');
在package.json中更改bcrypt为bcryptjs,并将该栏设为“*”这样可不受版本影响
删除node_modules文件夹,package-lock...