Protegendo senhas de usuários no Go no App Engine
Ao lidar com senhas de usuários em aplicativos Go implantados no Google App Engine, a segurança é fundamental. A biblioteca bcrypt, embora eficaz no hash de senhas, apresenta limitações devido ao uso do syscall. Por esse motivo, os desenvolvedores podem buscar métodos alternativos para hash de senha seguro.
Uma opção confiável é aproveitar o pacote golang.org/x/crypto, que fornece implementações nativas de PBKDF2 e bcrypt. Essas implementações eliminam a dependência do syscall, tornando-as adequadas para o App Engine.
Uso do bcrypt
Para utilizar o bcrypt, siga estas etapas:
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 }
Usando PBKDF2
Para necessidades de hash mais simples, PBKDF2 pode ser usado:
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 }
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3