如何將密碼存儲在資料庫中
你不需要將密碼直接存儲在資料庫中。你需要存儲密碼的雜湊值,這是從密碼產生的一個字符串,但沒有辦法從雜湊值回推出原始的密碼值。
使用Node,安裝 bcrypt
:
1 | npm install bcrypt |
引入它,並設置salt回合值,稍後我們會使用它:
1 | const bcrypt = require('bcrypt') |
創建密碼雜湊值
使用下面的代碼創建密碼雜湊值:
1 | const hash = await bcrypt.hash('PASSWORD', saltRounds) |
其中 PASSWORD
是實際的密碼字符串。
如果你更喜歡回調函數的方式:
1 | bcrypt.hash('PASSWORD', saltRounds, (err, hash) => { |
然後你可以將 hash
值存儲在資料庫中。
驗證密碼雜湊值
要驗證密碼,需要使用 bcrypt.compare()
將其與存儲在資料庫中的雜湊值進行比較:
1 | const result = await bcrypt.compare('PASSWORD', hash) |
使用回調函數的方式:
1 | bcrypt.compare('somePassword', hash, (err, result) => { |
tags: [“password hash”, “bcrypt”, “security”]