Hachage sécurisé des mots de passe dans Golang/App Engine sans appel système ni scrypt
Bien que bcrypt et scrypt soient couramment utilisés pour le hachage de mots de passe, ils peuvent ne pas l'être adapté à App Engine en raison de l'accessibilité des appels système. Comme alternative, envisagez d'utiliser la bibliothèque go.crypto pour un hachage sécurisé des mots de passe.
Le package go.crypto offre une prise en charge à la fois de pbkdf2 et de bcrypt. Les deux implémentations sont entièrement écrites en Go, garantissant la compatibilité avec App Engine.
1. Utilisation de bcrypt
Implémentez bcrypt en suivant les étapes suivantes :
go get golang.org/x/crypto/bcrypt
Exemple d'utilisation :
import "golang.org/x/crypto/bcrypt"
func clear(b []byte) {
for i := 0; i Cela produira une sortie similaire à :
$2a$10$sylGijT5CIJZ9ViJsxZOS.IB2tOtJ40hf82eFbTwq87iVAOb5GL8e
2. Utilisation de pbkdf2
Pour un hachage simple utilisant pbkdf2 :
import "golang.org/x/crypto/pbkdf2"
func HashPassword(password, salt []byte) []byte {
defer clear(password)
return pbkdf2.Key(password, salt, 4096, sha256.Size, sha256.New)
}
pass := []byte("foo")
salt := []byte("bar")
fmt.Printf("%x\n", HashPassword(pass, salt))
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3