„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie sichert man Benutzerkennwörter in Go on App Engine?

Wie sichert man Benutzerkennwörter in Go on App Engine?

Veröffentlicht am 08.11.2024
Durchsuche:619

How to Secure User Passwords in Go on App Engine?

Sichern von Benutzerkennwörtern in Go auf App Engine

Beim Umgang mit Benutzerkennwörtern in Go-Anwendungen, die auf Google App Engine bereitgestellt werden, ist Sicherheit von größter Bedeutung. Die bcrypt-Bibliothek ist zwar effektiv beim Passwort-Hashing, weist jedoch aufgrund der Verwendung von Syscall Einschränkungen auf. Aus diesem Grund suchen Entwickler möglicherweise nach alternativen Methoden für sicheres Passwort-Hashing.

Eine zuverlässige Option ist die Nutzung des Pakets golang.org/x/crypto, das native Implementierungen von PBKDF2 und bcrypt bereitstellt. Diese Implementierungen eliminieren die Abhängigkeit von Syscall und sind somit für App Engine geeignet.

Verwenden von bcrypt

Um bcrypt zu verwenden, führen Sie die folgenden Schritte aus:

1. Install the package:

go get golang.org/x/crypto/bcrypt
2. Example usage:

package main

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

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

    // Generate a hashed password
    ctext, err := bcrypt.GenerateFromPassword(pass, bcrypt.DefaultCost)
    if err != nil {
        // Handle error
    }

    fmt.Println(string(ctext)) // Example output: $2a$10$sylGijT5CIJZ9ViJsxZOS.IB2tOtJ40hf82eFbTwq87iVAOb5GL8e
}

Verwenden von PBKDF2

Für einfachere Hashing-Anforderungen kann PBKDF2 verwendet werden:

1. Install the package:

go get golang.org/x/crypto/pbkdf2
2. Example usage:

package main

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

func main() {
    pass := []byte("your password")
    salt := []byte("your salt")

    // Generate a hash
    hash := pbkdf2.Key(pass, salt, 4096, sha256.Size, sha256.New)

    fmt.Printf("%x\n", hash) // Example output: 0x079b8238d3815d31d87d75ff893371ac3cc875f97eca499854655da9554d2555
}
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3