"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como fazer hash de senhas com segurança no Golang/App Engine sem syscall ou scrypt?

Como fazer hash de senhas com segurança no Golang/App Engine sem syscall ou scrypt?

Publicado em 2024-11-08
Navegar:697

How to Securely Hash Passwords in Golang/App Engine Without syscall or scrypt?

Hashing seguro de senhas no Golang/App Engine sem syscall ou scrypt

Embora bcrypt e scrypt sejam comumente usados ​​para hash de senha, eles podem não ser adequado para App Engine devido à acessibilidade do syscall. Como alternativa, considere aproveitar a biblioteca go.crypto para hashing de senha seguro.

O pacote go.crypto oferece suporte para pbkdf2 e bcrypt. Ambas as implementações são escritas inteiramente em Go, garantindo compatibilidade com o App Engine.

1. Usando bcrypt

Implemente bcrypt usando as seguintes etapas:

go get golang.org/x/crypto/bcrypt

Exemplo de uso:

import "golang.org/x/crypto/bcrypt"

func clear(b []byte) {
    for i := 0; i 

Isso produzirá uma saída semelhante a:

$2a$10$sylGijT5CIJZ9ViJsxZOS.IB2tOtJ40hf82eFbTwq87iVAOb5GL8e

2. Usando pbkdf2

Para um hash simples usando pbkdf2:

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))
Tutorial mais recente Mais>

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