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 }
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