"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment hacher en toute sécurité des mots de passe dans Golang/App Engine sans appel système ni scrypt ?

Comment hacher en toute sécurité des mots de passe dans Golang/App Engine sans appel système ni scrypt ?

Publié le 2024-11-08
Parcourir:779

How to Securely Hash Passwords in Golang/App Engine Without syscall or scrypt?

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))
Dernier tutoriel Plus>

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