Compatibilité du hachage de mot de passe Bcrypt entre Go et Node.js
Lors de la migration de Node.js vers Go, il est essentiel de maintenir une compatibilité descendante avec les mots de passe des utilisateurs stockés dans la base de données. Cela nécessite de répliquer la fonctionnalité de hachage de mot de passe bcrypt de Node.js dans Go.
Dans Node.js, le code de cryptage bcrypt utilise la bibliothèque bcrypt pour générer un hachage salé à partir du mot de passe d'un utilisateur. Le code équivalent dans Go, utilisant le package golang.org/x/crypto/bcrypt, est :
hashedPassword, err := bcrypt.GenerateFromPassword(password, bcrypt.DefaultCost)
Cette fonction produit une chaîne de mot de passe hachée compatible avec la sortie générée par le code Node.js.
L'exemple Go suivant illustre le processus de hachage de mot de passe bcrypt :
package main import ( "golang.org/x/crypto/bcrypt" "fmt" ) func main() { password := []byte("SomeSecretPassword") hashedPassword, err := bcrypt.GenerateFromPassword(password, bcrypt.DefaultCost) if err != nil { panic(err) } fmt.Println(string(hashedPassword)) err = bcrypt.CompareHashAndPassword(hashedPassword, password) if err == nil { fmt.Println("Password matches hash.") } else { fmt.Println("Password does not match hash.") } }
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!