在Golang 中使用Bcrypt 雜湊密碼(Node.js 相容性)
從Node.js 和Passport 遷移到Golang 進行用戶身份驗證可以呈現挑戰,特別是在處理儲存在資料庫中的加密密碼時。本指南探討如何在 Golang 中建立與 Node.js 相容的 bcrypt 哈希字串。
Node.js 加密代碼
var bcrypt = require('bcrypt'); bcrypt.genSalt(10, 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(); }); });
Golang 等效項
要在Golang 中獲得相同的希結果,請使用golang.org/x/crypto/bcrypt package.
hashedPassword, err := bcrypt.GenerateFromPassword(password, bcrypt.DefaultCost)
工作範例
package main import ( "golang.org/x/crypto/bcrypt" "fmt" ) func main() { password := []byte("MyDarkSecret") // Hashing the password with the default cost of 10 hashedPassword, err := bcrypt.GenerateFromPassword(password, bcrypt.DefaultCost) if err != nil { panic(err) } fmt.Println(string(hashedPassword)) // Comparing the password with the hash err = bcrypt.CompareHashAndPassword(hashedPassword, password) fmt.Println(err) // nil means it is a match }
此範例示範了在Golang 中使用bcrypt 產生雜湊值密碼與Node.js 中建立的密碼等效,允許在過渡到Golang 期間無縫遷移加密密碼。
以上是如何在 Golang 中使用 Bcrypt 哈希密碼以實現 Node.js 相容性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!