Maison  >  Article  >  développement back-end  >  Comment hacher en toute sécurité des mots de passe dans Go/App Engine : au-delà de bcrypt

Comment hacher en toute sécurité des mots de passe dans Go/App Engine : au-delà de bcrypt

Linda Hamilton
Linda Hamiltonoriginal
2024-10-31 07:49:30281parcourir

How to Securely Hash Passwords in Go/App Engine: Beyond bcrypt

Hachage sécurisé des mots de passe dans Go/App Engine

Lors du hachage des mots de passe utilisateur dans une application Go/App Engine, il est crucial d'assurer la sécurité de la mise en œuvre. Cet article explore les méthodes alternatives à la bibliothèque bcrypt, qui est confrontée à des limitations sur App Engine en raison de son utilisation de syscall.

Options alternatives

Une approche recommandée consiste à utiliser l'option package go.crypto, qui fournit des implémentations Go pures de bcrypt et pbkdf2. Ces implémentations peuvent être utilisées sur App Engine.

Utilisation de bcrypt

Pour utiliser bcrypt, installez le package à l'aide de go get et importez-le dans votre code :

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

Pour hacher un mot de passe, utilisez la fonction GenerateFromPassword :

<code class="go">func Crypt(password []byte) ([]byte, error) {
    defer clear(password)
    return bcrypt.GenerateFromPassword(password, bcrypt.DefaultCost)
}</code>

Utilisation de pbkdf2

Si vous préférez un mécanisme de hachage plus simple, vous pouvez utiliser 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)
}</code>

Conclusion

bcrypt et pbkdf2 fournissent tous deux des options sécurisées et efficaces pour le hachage de mot de passe dans les applications Go/App Engine. En utilisant les implémentations Go pures disponibles dans go.crypto, vous pouvez garantir la sécurité et la compatibilité de votre code.

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!

Déclaration:
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