golang

Paquete criptográfico de Golang

Paquete criptográfico de Golang
En esta lección sobre el paquete Crypto en Golang, estudiaremos varios ejemplos sobre la gestión y creación de cifrados en Go y veremos cómo el paquete Crypto nos ayuda con respecto al manejo de cifrado en el lenguaje de programación Go. Empezaremos ahora.

Comenzando con Go

Solo para asegurarnos de que estamos en la misma página, aquí está la estructura de 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á el resultado que verá:

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

Paquete criptográfico en Golang

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

En esta lección, estudiaremos estos puntos:

Comencemos por Hash y comparando contraseñas.

Cifrado SHA256

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

paquete principal
importar
"fmt"
"errores"
"cripto / sha256"
"codificación / base64"
)
func main ()
someText: = "shubham"
hash, err: = hashTextTo32Bytes (someText)
fmt.Printf ("% s \ n% s", hash, err)

func hashTextTo32Bytes (hashThis cadena) (cadena hash, err error)
if len (hashThis) == 0
return "", errores.Nuevo ("No se ha proporcionado ninguna entrada")

hasher: = sha256.Nuevo()
picador.Escribir ([] byte (hashThis))
stringToSHA256: = base64.URLEncoding.EncodeToString (hasher.Suma (cero))
// Corta la longitud a 32 bytes y regresa.
return stringToSHA256 [: 32], nulo

Empezamos 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 ejecutamos este ejemplo, obtendremos el siguiente resultado:

Hash y contraseñas coincidentes

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

También incluiremos una función que hace coincidir la contraseña hash con una cadena determinada. De esta forma, 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 puedes ejecutar este código:

paquete principal
importar "fmt"
importar "golang.org / x / crypto / bcrypt "
func HashPassword (cadena de contraseña) (cadena, error)
bytes, err: = bcrypt.GenerateFromPassword ([] byte (contraseña), 14)
devolver cadena (bytes), err

func CheckPasswordHash (contraseña, cadena hash) bool
err: = bcrypt.CompareHashAndPassword ([] byte (hash), [] byte (contraseña))
return err == nil

func main ()
myPwd: = "shubham"
provideHash, _: = HashPassword (myPwd)
fmt.Println ("Contraseña:", myPwd)
fmt.Println ("Hash:", ProvideHash)
isMatch: = CheckPasswordHash (myPwd, provideHash)
fmt.Println ("Coincidido ?: ", isMatch)

Cuando ejecutamos este ejemplo, obtendremos el siguiente resultado:

Conclusión

En esta publicación, estudiamos ejemplos simples pero útiles sobre cómo podemos usar el paquete criptográfico para realizar acciones muy importantes y útiles en nuestras aplicaciones.

Cómo cambiar la configuración del mouse y el panel táctil con Xinput en Linux
La mayoría de las distribuciones de Linux se envían con la biblioteca "libinput" de forma predeterminada para manejar eventos de entrada en un sistema...
Vuelva a asignar los botones del mouse de manera diferente para diferentes programas con X-Mouse Button Control
Tal vez necesite una herramienta que pueda hacer que el control de su mouse cambie con cada aplicación que use. Si este es el caso, puede probar una a...
Revisión del mouse inalámbrico Microsoft Sculpt Touch
Recientemente leí sobre el Microsoft Sculpt Touch mouse inalámbrico y decidí comprarlo. Después de usarlo por un tiempo, decidí compartir mi experienc...