golang

Paquet de chiffrement du Golang

Paquet de chiffrement du Golang
Dans cette leçon sur le package Crypto dans Golang, nous étudierons divers exemples sur la gestion et la création de chiffrements dans Go et verrons comment le package Crypto nous aide en ce qui concerne la gestion du chiffrement dans le langage de programmation Go. Nous allons commencer maintenant.

Commencer par Go

Juste pour être sûr que nous sommes sur la même longueur d'onde, voici la structure de répertoires que j'ai faite pour mon programme Hello World :

Voici le programme que nous avons créé :

paquet principal
importer "fmt"
fonction principale()
fmt.Printf("Bonjour, monde.\n")

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

va courir bonjour.va

Une fois que nous avons exécuté cette commande, voici le résultat que vous verrez :

Maintenant ça a l'air bien. Passons à notre ordre du jour principal.

Paquet de chiffrement dans le Golang

L'utilisation de Crypto dans le Golang n'est pas très facile à comprendre. C'est à cause des constructions qu'il fournit et de l'algorithme qu'il suit pour réaliser le cryptage et le décryptage.

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

Commençons par hacher et comparer les mots de passe.

Cryptage SHA256

Nous allons commencer par un peu simple. Nous allons essayer un exemple très simple sur la façon d'effectuer un cryptage SHA256 en utilisant Golang. Regardons l'exemple :

paquet principal
importer (
"fmt"
"les erreurs"
"crypto/sha256"
"encodage/base64"
)
fonction principale()
someText := "shubham"
hachage, err := hashTextTo32Bytes(someText)
fmt.Printf("%s\n %s", hachage, err)

func hashTextTo32Bytes(hashThis string) (chaîne hachée, erreur d'erreur)
if len(hashThis) == 0
retour "", erreurs.Nouveau("Aucune entrée fournie")

hachage := sha256.Nouveau()
hacheur.Écrire([]octet(hashThis))
chaîneVersSHA256 := base64.URLEncodage.EncodeToString(hasher.Somme (néant))
// Réduisez la longueur à 32 octets et retournez.
chaîne de retourVersSHA256[:32], nil

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

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

Hachage et correspondance du mot de passe

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 fait correspondre le 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, vous devrez installer le package golang pour bcrypt avec la commande suivante :

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

Ensuite, vous pouvez exécuter ce code :

paquet principal
importer "fmt"
importer "golang.org/x/crypto/bcrypt"
func HashPassword (chaîne de mot de passe) (chaîne, erreur)
octets, err := bcrypt.GenerateFromPassword([]byte(password), 14)
chaîne de retour (octets), err

func CheckPasswordHash (mot de passe, chaîne de hachage) bool
err := bcrypt.CompareHashAndPassword([]byte(hash), []byte(password))
return err == nil

fonction principale()
myPwd := "shubham"
fourniHash, _ := HashPassword(myPwd)
fmt.Println("Mot de passe :", monPwd)
fmt.Println("Hash :", fourniHash)
isMatch := CheckPasswordHash(myPwd, fourniHash)
fmt.Println("Correspondance ?:", isMatch)

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

Conclusion

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

Comment booster les FPS sous Linux?
FPS signifie Images par seconde. La tâche du FPS est de mesurer la fréquence d'images dans les lectures vidéo ou les performances de jeu. En termes si...
Meilleurs jeux de laboratoire d'applications Oculus
Si vous êtes propriétaire d'un casque Oculus, vous devez être au courant du chargement latéral. Le chargement latéral est le processus d'installation ...
Top 10 des jeux à jouer sur Ubuntu
La plate-forme Windows a été l'une des plates-formes dominantes pour les jeux en raison du pourcentage énorme de jeux qui se développent aujourd'hui p...