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

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

Linda Hamilton
Libérer: 2024-12-03 07:30:10
original
641 Les gens l'ont consulté

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

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)
Copier après la connexion

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.")
    }
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal