Package Golang Crypto

Package Golang Crypto
Dans cette leçon sur le package cryptographique à Golang, nous étudierons divers exemples sur la gestion et la création de chiffres en Go et voir comment le package crypto nous aide en ce qui concerne la manipulation du chiffre dans le langage de programmation Go. Nous allons commencer maintenant.

Commençant par aller

Juste pour nous assurer que nous sommes sur la même longueur d'onde, voici la structure du répertoire que j'ai fait pour mon programme Hello World:

Voici le programme que nous avons créé:

package principal
Importer "FMT"
func main ()
fmt.Printf ("bonjour, monde.\ n ")

Nous pouvons exécuter le programme ci-dessus avec la commande suivante:

va courir bonjour.aller

Une fois que nous exécuterons cette commande, voici la sortie que vous verrez:

Maintenant ça a l'air bien. Passons à notre programme principal.

Crypto Package à Golang

L'utilisation de la crypto à Golang n'est pas très facile à comprendre. Cela est dû aux constructions qu'il fournit et à l'algorithme qu'il suit pour atteindre le cryptage et le déchiffrement.

Dans cette leçon, nous étudierons ces points:

  • Cryptage SHA256
  • Comment utiliser BCrypt pour crypter des chaînes comme les mots de passe dans vos applications Web
  • Utilisation du cryptage AES et du décryptage

Commençons par hachage et comparant les mots de passe.

Cryptage SHA256

Nous commencerons par un peu simple. Nous allons essayer un exemple très simple sur la façon d'effectuer un chiffrement SHA256 à l'aide de Golang. Regardons l'exemple:

package principal
importer (
"FMT"
"les erreurs"
"crypto / sha256"
"Encodage / base64"
)
func main ()
Quelque chose: = "Shubham"
hash, err: = hashtextto32 bytes (quelque chose)
fmt.Printf ("% s \ n% s", hachage, err)

func hashTextTo32Bytes (Hashthis String) (chaîne hachée, erreur)
Si Len (hashthis) == 0
Renvoie "", erreurs.Nouveau ("Aucune entrée fournie")

Hash: = SHA256.Nouveau()
hachage.Écrire ([] octet (hashthis))
StringTosha256: = base64.Urlencoding.Encodetostring (Hasher.Sum (nil))
// réduit la longueur à 32 octets et retour.
retour stringtosha256 [: 32], nil

Nous avons commencé par créer un hachage initialement. Après cela, nous l'avons utilisé pour écrire le hachage dans un tableau d'octets. Enfin, nous codant pour la chaîne et retournons les 32 bits de hachage.

Lorsque nous exécutons cet exemple, nous obtiendrons la sortie suivante:

Hachage et mot de passe correspondant

Maintenant, nous allons enfin utiliser BCrypt pour produire des mots de passe hachés. Nous garderons les fonctions directes et simples.

Nous inclurons également une fonction qui correspond au mot de passe haché à une chaîne donnée. De cette façon, nous pouvons également confirmer si le mot de passe fourni par l'utilisateur est correct. Avant d'exécuter, ce code devra installer le package Golang pour Bcrypt avec la commande suivante:

# va chercher "golang.org / x / crypto / bcrypt "

Ensuite, vous pouvez exécuter ce code:

package principal
Importer "FMT"
Importer "Golang.org / x / crypto / bcrypt "
func hashpassword (mot de passe String) (chaîne, erreur)
octets, err: = bcrypt.GenerateFRompassword ([] octet (mot de passe), 14)
Retour String (octets), err

func checkPasswordhash (mot de passe, chaîne de hash) bool
err: = bcrypt.CompareHashandPassword ([] octet (hash), [] octet (mot de passe))
Retour err == nil

func main ()
mypwd: = "shubham"
fournihash, _: = hashpassword (mypwd)
fmt.Println ("mot de passe:", mypwd)
fmt.Println ("hash:", fournie)
Ismatch: = CheckPasswordHash (MyPWD, fournie)
fmt.Println ("correspondant ?: ", Ismatch)

Lorsque nous exécutons cet exemple, nous obtiendrons la sortie suivante:

Conclusion

Dans cet article, nous avons étudié des exemples simples mais utiles sur la façon dont nous pouvons utiliser le package cryptographique pour effectuer des actions très importantes et utiles dans nos applications.