Hashing von Passwörtern mit Bcrypt in Golang (Node.js-Kompatibilität)
Die Migration von Node.js und Passport zu Golang zur Benutzerauthentifizierung kann vorliegen Herausforderungen, insbesondere beim Umgang mit verschlüsselten Passwörtern, die in der Datenbank gespeichert sind. In dieser Anleitung erfahren Sie, wie Sie bcrypt-Hash-Strings in Golang erstellen, die mit Node.js kompatibel sind.
Node.js-Verschlüsselungscode
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-Äquivalent
Um die gleichen Hashing-Ergebnisse in Golang zu erzielen, verwenden Sie die golang.org/x/crypto/bcrypt-Paket.
hashedPassword, err := bcrypt.GenerateFromPassword(password, bcrypt.DefaultCost)
Arbeitsbeispiel
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 }
Dieses Beispiel zeigt die Verwendung von bcrypt in Golang, um einen Hash zu generieren Passwort, das dem in Node.js erstellten entspricht, was eine nahtlose Migration verschlüsselter Passwörter während des Übergangs zu Golang ermöglicht.
Das obige ist der detaillierte Inhalt vonWie hashe ich Passwörter mit Bcrypt in Golang für Node.js-Kompatibilität?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!