bcrypt的简单使用
生活随笔
收集整理的這篇文章主要介紹了
bcrypt的简单使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前段時間在搗鼓個人項目的時候用到了nodejs做服務端,發現使用加密的方法和之前常用的加密方式不太一致,下面以demo的形式總結一下bcrypt對密碼進行加密的方法。
一、簡介
Bcrypt簡介: bcrypt是一種跨平臺的文件加密工具。bcrypt 使用的是布魯斯·施內爾在1993年發布的 Blowfish 加密算法。由它加密的文件可在所有支持的操作系統和處理器上進行轉移。它的口令必須是8至56個字符,并將在內部被轉化為448位的密鑰。
簡單的說,Bcrypt就是一款加密工具,可以比較方便地實現數據的加密工作。下面是使用Bcrypt對數據加密的一個簡單的栗子:
二、栗子
var mongoose = require('mongoose');// 引入bcrypt模塊 var bcrypt = require('bcrypt'); // 定義加密密碼計算強度 var SALT_WORK_FACTOR = 10;// 連接數據庫 mongoose.connect('mongodb://localhost:27017/test');//定義用戶模式 var UserSchema = new mongoose.Schema({name: {unique: true,type: String},password: {unique: true,type: String} }, {collection: "user" });//使用pre中間件在用戶信息存儲前進行密碼加密 UserSchema.pre('save', function(next) {var user = this;//進行加密bcrypt.genSalt(SALT_WORK_FACTOR, function(err, salt) {if(err) {return next(err);}bcrypt.hash(user.password, salt, function(err, hash) {if(err) {return next(err);}user.password = hash;next();})}); });//編譯模型 var UserBx = mongoose.model('UserBx', UserSchema);//創建文檔對象實例 var user = new UserBx({name: 'lidan',password: '12345' });//保存用戶信息 user.save(function(err, user) {if(err) {console.log(err);}else {// 如果保存成功,打印用戶密碼console.log('password:' + user.password);} })結果:
可以發現,保存到數據庫中的是加密后的密碼。
注: SALT_WORK_FACTOR 表示密碼加密的計算強度,從1級到10級,強度越高,密碼越復雜,計算時間也越長。值得注意的是,強度為1-3時強度太低,系統會默認使用強度為10的計算方式進行加密。
參考文檔
總結
以上是生活随笔為你收集整理的bcrypt的简单使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 原码、反码、补码,计算机中所有的数都是以
- 下一篇: Ubuntu 20.04安装微信,QQ,