概述
虽然性能没有bcrypt高,但是这个零依赖太好了;
官方手册说明:
Optimized bcrypt in plain JavaScript with zero dependencies. Compatible to 'bcrypt'.
优化bcrypt在纯JavaScript与零依赖。兼容“bcrypt”。
每周下载 (Weekly Downloads)
603,152
由于安装bcrypt,需要自己的版本与nodejs的版本按一定规则匹配,且需要python 2.x支持;
作为服务端小白,不清楚怎么能协调服务器上, 其他软件要使用python2.x之外的版本,怎么调和这个冲突;
所以在性能与后续的一系列隐患 权衡后,bcrypt.js还是很有必要推荐的
题外话,选择( bcrypt / bcrypt.js ),主要是因为这种散列方式每次散列的结果都不一样,优于几年前的 MD5 ( 密码固定,容易撞库 ) 以及 MD5+salt 太过繁琐,且依然密码固定,有被破解的可能性
安装
npm文档地址
npm install bcryptjs -S
引入与使用
0.引入
var bcrypt = require('bcryptjs');
1.密码加密 ( Store hash in your password DB )
var bcrypt = require('bcryptjs');
var salt = bcrypt.genSaltSync(10); //---散列10位长度,太长浪费性能没必要,过少的话,那么安全性又是个问题
var hash = bcrypt.hashSync("123456", salt); //---获得加密的 hash 密码
2.密码解密 ( Load hash from your password DB )
[ 比对上面获得的 hash 密码 ] 与 [ 当前用户明文输入的密码 ]
bcrypt.compareSync("123456", hash); // true --- 密码正确
bcrypt.compareSync("111111", hash); // false --- 密码错误
网友评论