Maison > développement back-end > Golang > 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 ?

Linda Hamilton
Libérer: 2024-10-30 08:26:02
original
666 Les gens l'ont consulté

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 la prise en charge 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 :

<code class="bash">go get golang.org/x/crypto/bcrypt</code>
Copier après la connexion

Exemple d'utilisation :

<code class="go">import "golang.org/x/crypto/bcrypt"

func clear(b []byte) {
    for i := 0; i < len(b); i++ {
        b[i] = 0;
    }
}

func Crypt(password []byte) ([]byte, error) {
    defer clear(password)
    return bcrypt.GenerateFromPassword(password, bcrypt.DefaultCost)
}

ctext, err := Crypt(pass)

if err != nil {
    log.Fatal(err)
}

fmt.Println(string(ctext))</code>
Copier après la connexion

Cela produira un résultat similaire à :

a$sylGijT5CIJZ9ViJsxZOS.IB2tOtJ40hf82eFbTwq87iVAOb5GL8e
Copier après la connexion

2. Utilisation de pbkdf2

Pour un hachage simple utilisant pbkdf2 :

<code class="go">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))</code>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal