Hash est une fonction utilisée pour compresser un message de n'importe quelle longueur dans un résumé de longueur fixe. En général, une fonction de hachage mappe n’importe quelle entrée à une chaîne de sorties de longueur fixe. Différentes entrées peuvent être mappées vers la même sortie, appelée collision de hachage. Les fonctions de hachage sont largement utilisées dans la sécurité de l'information, la vérification de l'intégrité des données et dans d'autres domaines. Dans cet article, nous présenterons comment utiliser les fonctions de hachage en langage Go.
Il existe de nombreux types de fonctions de hachage, et chaque fonction de hachage a ses propres caractéristiques uniques, telles que la longueur de la valeur de hachage, la sécurité, la vitesse, etc. En langage Go, les fonctions de hachage couramment utilisées incluent MD5, SHA-1, SHA-256, etc. Ces fonctions implémentent l'interface crypto.Hash et peuvent être utilisées pour générer des résumés de messages.
Ci-dessous, nous expliquerons comment utiliser respectivement les fonctions MD5, SHA-1 et SHA-256.
MD5 est une fonction de hachage largement utilisée qui compresse les messages de longueur arbitraire en une valeur de hachage de 128 bits. Dans le langage Go, vous pouvez utiliser la fonction New du package crypto/md5 pour créer la fonction de hachage MD5. L'appel de cette fonction renverra un pointeur de type Hash. Vous pouvez utiliser ce pointeur pour appeler la méthode Write afin de saisir les données pour lesquelles la valeur de hachage doit être calculée, et enfin appeler la méthode Sum pour obtenir la valeur de hachage calculée. L'exemple de code est le suivant :
package main import ( "crypto/md5" "fmt" ) func main() { data := []byte("hello world") hash := md5.New() hash.Write(data) fmt.Printf("%x ", hash.Sum(nil)) }
Le résultat de sortie est :
5eb63bbbe01eeed093cb22bb8f5acdc3
SHA-1 est une fonction de hachage basée sur l'algorithme MD5, qui compresse les messages de n'importe quelle longueur en une valeur de hachage de 160 bits. Dans le langage Go, vous pouvez utiliser la fonction New du package crypto/sha1 pour créer une fonction de hachage SHA-1. L'appel de cette fonction renverra un pointeur de type Hash. Vous pouvez utiliser ce pointeur pour appeler la méthode Write afin de saisir les données pour lesquelles la valeur de hachage doit être calculée, et enfin appeler la méthode Sum pour obtenir la valeur de hachage calculée. L'exemple de code est le suivant :
package main import ( "crypto/sha1" "fmt" ) func main() { data := []byte("hello world") hash := sha1.New() hash.Write(data) fmt.Printf("%x ", hash.Sum(nil)) }
Le résultat de sortie est :
2ef7bde608ce5404e97d5f042f95f89f1c232871
SHA-256 est une fonction de hachage qui compresse un message de n'importe quelle longueur en une valeur de hachage de 256 bits. Dans le langage Go, vous pouvez utiliser la fonction New du package crypto/sha256 pour créer une fonction de hachage SHA-256. L'appel de cette fonction renverra un pointeur de type Hash. Vous pouvez utiliser ce pointeur pour appeler la méthode Write afin de saisir les données pour lesquelles la valeur de hachage doit être calculée, et enfin appeler la méthode Sum pour obtenir la valeur de hachage calculée. L'exemple de code est le suivant :
package main import ( "crypto/sha256" "fmt" ) func main() { data := []byte("hello world") hash := sha256.New() hash.Write(data) fmt.Printf("%x ", hash.Sum(nil)) }
Le résultat de sortie est :
b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
Comme vous pouvez le voir, les valeurs de hachage générées par différentes fonctions de hachage ont des longueurs différentes. La fonction de hachage appropriée doit être sélectionnée en fonction des besoins spécifiques de l'application.
Résumé : les fonctions de hachage peuvent compresser des messages de n'importe quelle longueur en valeurs de hachage de longueur fixe. Le langage Go offre une variété d'implémentations de fonctions de hachage, et nous pouvons choisir la fonction de hachage appropriée en fonction des besoins réels. Les fonctions de hachage sont largement utilisées dans des domaines tels que la sécurité de l'information et la vérification de l'intégrité des données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!