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!