Mencincang Kata Laluan dengan Bcrypt dalam Golang (Keserasian Node.js)
Berpindah dari Node.js dan Pasport ke Golang untuk pengesahan pengguna boleh hadir cabaran, terutamanya apabila mengendalikan kata laluan yang disulitkan yang disimpan dalam pangkalan data. Panduan ini meneroka cara mencipta rentetan cincang bcrypt dalam Golang yang serasi dengan Node.js.
Kod Penyulitan 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 Equivalent
Untuk mencapai hasil pencincangan yang sama di Golang, gunakan pakej golang.org/x/crypto/bcrypt.
hashedPassword, err := bcrypt.GenerateFromPassword(password, bcrypt.DefaultCost)
Contoh Berfungsi
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 }
Contoh ini menunjukkan penggunaan bcrypt dalam Golang untuk menjana cincang kata laluan yang setara dengan yang dibuat dalam Node.js, membolehkan pemindahan kata laluan yang disulitkan dengan lancar semasa peralihan kepada Golang.
Atas ialah kandungan terperinci Bagaimana untuk Mencincang Kata Laluan dengan Bcrypt dalam Golang untuk Keserasian Node.js?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!