"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 sécuriser les mots de passe des utilisateurs dans Go sur App Engine ?

Comment sécuriser les mots de passe des utilisateurs dans Go sur App Engine ?

Publié le 2024-11-08
Parcourir:800

How to Secure User Passwords in Go on App Engine?

Sécurisation des mots de passe utilisateur dans Go sur App Engine

Lors de la gestion des mots de passe utilisateur dans les applications Go déployées sur Google App Engine, la sécurité est primordiale. La bibliothèque bcrypt, bien qu'efficace pour le hachage de mots de passe, pose des limitations en raison de son utilisation de l'appel système. Pour cette raison, les développeurs peuvent rechercher des méthodes alternatives pour un hachage sécurisé des mots de passe.

Une option fiable consiste à exploiter le package golang.org/x/crypto, qui fournit des implémentations natives de PBKDF2 et bcrypt. Ces implémentations éliminent la dépendance à l'égard de l'appel système, ce qui les rend adaptées à App Engine.

Utilisation de bcrypt

Pour utiliser bcrypt, procédez comme suit :

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
}

Utilisation de PBKDF2

Pour des besoins de hachage plus simples, PBKDF2 peut être utilisé :

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