Maison >développement back-end >Golang >Comment puis-je garantir la compatibilité du hachage de mot de passe Bcrypt entre Node.js et Golang ?

Comment puis-je garantir la compatibilité du hachage de mot de passe Bcrypt entre Node.js et Golang ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-06 22:46:15784parcourir

How Can I Ensure Bcrypt Password Hashing Compatibility Between Node.js and Golang?

Hachage de mot de passe Bcrypt dans Golang : atteindre la compatibilité avec Node.js

La migration des systèmes d'authentification de Node.js vers Golang nécessite de résoudre la compatibilité du hachage de mot de passe . Cet article présente une solution utilisant Node.js bcrypt et son équivalent dans Golang, golang.org/x/crypto/bcrypt.

Pour répliquer la chaîne hachée générée par Node.js bcrypt dans Golang, utilisez le code suivant :

hashedPassword, err := bcrypt.GenerateFromPassword(password, bcrypt.DefaultCost)

Voici un exemple fonctionnel :

package main

import (
    "golang.org/x/crypto/bcrypt"
    "fmt"
)

func main() {
    password := []byte("MyDarkSecret")

    hashedPassword, err := bcrypt.GenerateFromPassword(password, bcrypt.DefaultCost)
    if err != nil {
        panic(err)
    }
    fmt.Println(string(hashedPassword))

    err = bcrypt.CompareHashAndPassword(hashedPassword, password)
    fmt.Println(err) // nil means it is a match
}

En utilisant golang.org/x/crypto/bcrypt, vous pouvez garantir la compatibilité avec votre système d'authentification existant lors de la migration 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn