Heim > Backend-Entwicklung > Golang > Wie hashe ich Passwörter mit Bcrypt in Golang für Node.js-Kompatibilität?

Wie hashe ich Passwörter mit Bcrypt in Golang für Node.js-Kompatibilität?

Patricia Arquette
Freigeben: 2024-12-09 12:33:18
Original
961 Leute haben es durchsucht

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

Hashing von Passwörtern mit Bcrypt in Golang (Node.js-Kompatibilität)

Die Migration von Node.js und Passport zu Golang zur Benutzerauthentifizierung kann vorliegen Herausforderungen, insbesondere beim Umgang mit verschlüsselten Passwörtern, die in der Datenbank gespeichert sind. In dieser Anleitung erfahren Sie, wie Sie bcrypt-Hash-Strings in Golang erstellen, die mit Node.js kompatibel sind.

Node.js-Verschlüsselungscode

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();
    });
});
Nach dem Login kopieren

Golang-Äquivalent

Um die gleichen Hashing-Ergebnisse in Golang zu erzielen, verwenden Sie die golang.org/x/crypto/bcrypt-Paket.

hashedPassword, err := bcrypt.GenerateFromPassword(password, bcrypt.DefaultCost)
Nach dem Login kopieren

Arbeitsbeispiel

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
}
Nach dem Login kopieren

Dieses Beispiel zeigt die Verwendung von bcrypt in Golang, um einen Hash zu generieren Passwort, das dem in Node.js erstellten entspricht, was eine nahtlose Migration verschlüsselter Passwörter während des Übergangs zu Golang ermöglicht.

Das obige ist der detaillierte Inhalt vonWie hashe ich Passwörter mit Bcrypt in Golang für Node.js-Kompatibilität?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage