為了保證密碼的安全性,不建議在資料庫以 明文 的形式保存用戶密碼,推薦對密碼進行 加密存盤,
1.在所需專案中,使用 bcryptjs 對用戶密碼進行加密,優點:
- 加密之后的密碼,無法被逆向破解
- 同一明文密碼多次加密,得到的加密結果各不相同,保證了安全性
2.安裝并配置 bcryptjs
bcryptjs詳見 : bcryptjs - npm
2.1 在所需專案檔案中打開終端寫入下面命令安裝
npm i bcryptjs
2.2 匯入 bcryptjs
const bcrypt = require('bcryptjs');
2.3 同步進行加密及認證
//【同步】
// 賦值隨機字串
// 數值越大 生成的隨機字串復雜度越高
// 數值越小 生成的隨機字串復雜度越低
var salt = bcrypt.genSaltSync(10);
// 對明文加密
var pass = bcrypt.hashSync('123456', salt);
// 驗證比對是否正確,回傳布林值表示驗證結果 true表示一致,false表示不一致
var isTrue = bcrypt.compareSync('123456', pass);
console.log(pass);
console.log(isTrue);
加鹽 ; 鹽不同 , 加密出來的密文也不一樣 ;多次對同一個明文加密, 加密出來的密文是不一樣的 .
2.4異步進行加密及認證
//【異步加密認證】
//賦值隨機字串
// 數值越大 生成的隨機字串復雜度越高
// 數值越小 生成的隨機字串復雜度越低
bcrypt.getSalt(10,(err,salt)=>{
//對明文進行加密
bcrypt.hashSync('123456',salt,(err,pass)=>{
console.log(pass);
//驗證比對是否正確
bcrypt.compare('123456',pass,(err,isTrue)=>{
console.log(isTrue);
})
})
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/317639.html
標籤:其他
