Maison > développement back-end > Golang > Comment hacher des mots de passe avec Bcrypt dans Golang pour la compatibilité Node.js ?

Comment hacher des mots de passe avec Bcrypt dans Golang pour la compatibilité Node.js ?

Patricia Arquette
Libérer: 2024-12-09 12:33:18
original
964 Les gens l'ont consulté

How to Hash Passwords with Bcrypt in Golang for Node.js Compatibility?

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

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

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

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!

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