Paquete de criptográfico de Golang

Paquete de criptográfico de Golang
En esta lección sobre el paquete criptográfico en Golang, estudiaremos varios ejemplos sobre la gestión y la creación de cifrados en GO y ver cómo nos ayuda al paquete criptográfico en lo que respecta al manejo de cifrado en el lenguaje de programación GO. Comenzaremos ahora.

Empezando con Go

Solo para asegurarnos de que estamos en la misma página, aquí está la estructura del directorio que hice para mi programa Hello World:

Aquí está el programa que creamos:

paquete principal
importar "fmt"
func Main ()
fmt.Printf ("Hola, mundo.\norte")

Podemos ejecutar el programa anterior con el siguiente comando:

Ve a correr hola.ir

Una vez que ejecutemos este comando, aquí está la salida que verá:

Ahora que se ve bien. Pasemos a nuestra agenda principal.

Paquete criptográfico en Golang

Usar criptográfico en Golang no es muy fácil de entender. Esto se debe a las construcciones que proporciona y el algoritmo que se deduce para lograr el cifrado y el descifrado.

En esta lección, estudiaremos estos puntos:

  • Cifrado SHA256
  • Cómo usar BCRYPT para encriptar cadenas como contraseñas en sus aplicaciones web
  • Uso de cifrado y descifrado de AES

Comencemos por hash y comparando contraseñas.

Cifrado SHA256

Comenzaremos con algo simple. Intentaremos un ejemplo muy simple sobre cómo realizar un cifrado SHA256 usando Golang. Veamos el ejemplo:

paquete principal
importar (
"FMT"
"Errores"
"Crypto/Sha256"
"Codificación/base64"
)
func Main ()
a veces: = "Shubham"
hash, err: = HashTextTO32Bytes (en algún momento)
fmt.Printf (" %s \ n %s", hash, err)

FUNC HashTextTO32Bytes (Hashthis String) (String Hashed, Err Error)
Si len (hashthis) == 0
devolver "", errores.Nuevo ("Sin entrada suministrada")

Hasher: = SHA256.Nuevo()
picador.Escribir ([] byte (hashthis))
stringtosha256: = base64.Urlencamiento.Codificación (Hasher.Suma (nulo))
// Cortar la longitud a 32 bytes y regresar.
return stringtosha256 [: 32], nil

Comenzamos creando un Hasher inicialmente. Después de esto, lo usamos para escribir el hash en una matriz de bytes. Finalmente, codificamos la cadena y devolvemos los 32 bits de hash.

Cuando ejecutemos este ejemplo, obtendremos la siguiente salida:

Contraseña de hash y coincidencia

Ahora, finalmente usaremos bcrypt para producir contraseñas de hash. Mantendremos las funciones directas y simples.

También incluiremos una función que coincida con la contraseña hash a una cadena dada. De esta manera, también podemos confirmar si la contraseña proporcionada por el usuario es correcta. Antes de ejecutar este código, deberá instalar el paquete Golang para BCRYPT con el siguiente comando:

# ve a buscar "Golang.org/x/crypto/bcrypt "

Entonces puede ejecutar este código:

paquete principal
importar "fmt"
importar "golang.org/x/crypto/bcrypt "
FUNC HashPassword (String Password String) (String, Error)
bytes, err: = bcrypt.GenerateFrompassWord ([] byte (contraseña), 14)
return string (bytes), err

FUNC CheckPassWordHash (Password, hash String) Bool
Err: = BCrypt.CompareHashandPassword ([] byte (hash), [] byte (contraseña))
devolver err == nil

func Main ()
mypwd: = "shubham"
provistohash, _: = hashpassword (mypwd)
fmt.Println ("contraseña:", mypwd)
fmt.Println ("hash:", provisto)
ismatch: = checkpasswordhash (mypwd, provisto)
fmt.Println ("emparejado ?: ", ismatch)

Cuando ejecutemos este ejemplo, obtendremos la siguiente salida:

Conclusión

En esta publicación, estudiamos ejemplos simples pero útiles sobre cómo podemos usar paquetes de cifrado para hacer acciones muy importantes y útiles en nuestras aplicaciones.