Pacote de Golang Crypto

Pacote de Golang Crypto
Nesta lição sobre o pacote criptográfico em Golang, estudaremos vários exemplos sobre o gerenciamento e a criação de cifras em Go e ver como o pacote cripto. Vamos começar agora.

Começando com Go

Só para ter certeza de que estamos na mesma página, aqui está a estrutura de diretórios que fiz para o meu Programa Hello World:

Aqui está o programa que criamos:

Pacote principal
importar "fmt"
func main ()
fmt.Printf ("Olá, mundo.\ n ")

Podemos executar o programa acima com o seguinte comando:

vá correr olá.ir

Depois de executar este comando, aqui está a saída que você verá:

Agora isso parece bom. Vamos mudar para a nossa agenda principal.

Pacote criptográfico em Golang

Usar criptografia em Golang não é muito fácil de entender. Isso ocorre devido às construções que ele fornece e o algoritmo que segue para obter criptografia e descriptografia.

Nesta lição, estudaremos estes pontos:

  • SHA256 Criptografia
  • Como usar o BCRYPT para criptografar strings como senhas em seus aplicativos da web
  • Usando a criptografia e descriptografia de AES

Vamos começar por hash e comparação de senhas.

SHA256 Criptografia

Vamos começar com um tanto simples. Vamos tentar um exemplo muito simples sobre como executar uma criptografia SHA256 usando Golang. Vejamos o exemplo:

Pacote principal
importação (
"FMT"
"Erros"
"Crypto/sha256"
"Encoding/base64"
)
func main ()
SOMETEXT: = "Shubham"
Hash, err: = hashTextTo32Bytes (SOMETEXT)
fmt.Printf (" %s \ n %s", hash, err)

func hashtextTo32Bytes (hashis string) (string hashed, erro err)
se len (hashthis) == 0
retornar "", erros.Novo ("sem entrada fornecida")

HASHER: = SHA256.Novo()
Hasher.Escreva ([] byte (hashthis))
stringtosha256: = base64.Urlencoding.CodetoString (Hashher.Soma (nulo))
// reduzir o comprimento para 32 bytes e retornar.
Retornar Stringtosha256 [: 32], nil

Começamos criando um hasher inicialmente. Depois disso, usamos para escrever o hash em uma matriz de bytes. Finalmente, codificamos a string e retornamos os 32 bits de hash.

Quando executamos este exemplo, obteremos a seguinte saída:

Senha de hash e correspondência

Agora, finalmente usaremos o BCRYPT para produzir senhas de hashed. Vamos manter as funções diretas e simples.

Também incluiremos uma função que corresponde à senha de hash a uma determinada string. Dessa forma, também podemos confirmar se a senha fornecida pelo usuário está correta. Antes de executar este código, precisará instalar o pacote de Golang para BCRYPT com o seguinte comando:

# vá obter "Golang.org/x/cripto/bcrypt "

Então você pode executar este código:

Pacote principal
importar "fmt"
importar "Golang.org/x/cripto/bcrypt "
func hashpassword (senha string) (string, erro)
bytes, err: = bcrypt.Generatefropassword ([] byte (senha), 14)
retornar string (bytes), err

func checkpasswordhash (senha, string hash) bool
err: = bcrypt.CompareHashandPassword ([] byte (hash), [] byte (senha))
retornar err == nil

func main ()
mypwd: = "shubham"
fornecidohash, _: = hashpassword (mypwd)
fmt.Println ("senha:", mypwd)
fmt.Println ("hash:", fornecidohash)
ismatch: = checkpasswordhash (mypwd, fornecidohash)
fmt.Println ("Combinado ?: ", IsMatch)

Quando executamos este exemplo, obteremos a seguinte saída:

Conclusão

Neste post, estudamos exemplos simples, mas úteis, sobre como podemos usar o pacote criptográfico para realizar ações muito importantes e úteis em nossos aplicativos.