Le hachage de mots de passe avec Bcrypt dans Golang (compatibilité Node.js)
La migration de Node.js et Passport vers Golang pour l'authentification des utilisateurs peut présenter défis, en particulier lors de la gestion des mots de passe cryptés stockés dans la base de données. Ce guide explique comment créer des chaînes hachées bcrypt dans Golang compatibles avec Node.js.
Code de cryptage 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(); }); });
Équivalent Golang
Pour obtenir les mêmes résultats de hachage dans Golang, utilisez le golang.org/x/crypto/bcrypt package.
hashedPassword, err := bcrypt.GenerateFromPassword(password, bcrypt.DefaultCost)
Exemple de travail
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 }
Cet exemple démontre l'utilisation de bcrypt dans Golang pour générer un hachage mot de passe équivalent à celui créé dans Node.js, permettant une migration transparente des mots de passe cryptés lors de la transition vers Golang.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!