Maison >développement back-end >Golang >Hachage de fonction Golang, méthodes de calcul crc32, md5 et sha1

Hachage de fonction Golang, méthodes de calcul crc32, md5 et sha1

WBOY
WBOYoriginal
2023-05-18 08:12:222107parcourir

Golang est un nouveau langage de programmation hautes performances doté d'une riche bibliothèque standard et de fonctions intégrées. Celles-ci incluent des fonctions de hachage, qui peuvent être utilisées pour générer des valeurs de hachage de données pour la vérification des fichiers, la vérification des données, etc. Cet article présentera les méthodes de calcul et les applications des fonctions couramment utilisées hash, crc32, md5 et sha1 dans Golang.

1. Fonction de hachage

La fonction de hachage de Golang comprend une variété d'algorithmes de hachage, tels que SHA-1, MD5, SHA-224, SHA-256, SHA-384 et SHA-512, etc. Différents algorithmes de hachage ont des caractéristiques et des scénarios d'application différents.

1, SHA-1

SHA-1 est un algorithme de hachage sécurisé qui peut convertir des données de longueur arbitraire en une valeur de hachage de longueur fixe. La méthode de calcul de la fonction de hachage SHA-1 est la suivante :

import "crypto/sha1"

func main() {
    data := []byte("hello, world!")
    sha := sha1.Sum(data)
    shaStr := fmt.Sprintf("%x", sha)
    fmt.Println("SHA-1 of the data is:", shaStr)
}

Parmi eux, la fonction sha1.Sum() peut calculer la valeur de hachage SHA-1, et le type de valeur de retour est un octet tableau d'une longueur de 20. Étant donné que les valeurs de hachage sont généralement représentées sous forme de chaînes hexadécimales, vous pouvez utiliser la fonction fmt.Sprintf() pour convertir le tableau d'octets en chaîne hexadécimale.

2, MD5

MD5 est un algorithme de hachage couramment utilisé qui convertit les données de n'importe quelle longueur en une valeur de hachage de 128 bits. La méthode de calcul de la fonction de hachage MD5 est la suivante :

import "crypto/md5"

func main() {
    data := []byte("hello, world!")
    md := md5.Sum(data)
    mdStr := fmt.Sprintf("%x", md)
    fmt.Println("MD5 of the data is:", mdStr)
}

Parmi elles, la fonction md5.Sum() peut calculer la valeur de hachage MD5, et le type de valeur de retour est un tableau d'octets avec une longueur du 16. De même, vous devez également utiliser la fonction fmt.Sprintf() pour convertir le tableau d'octets en chaîne hexadécimale.

3, SHA-256

SHA-256 est un algorithme de hachage sécurisé qui convertit les données de n'importe quelle longueur en une valeur de hachage de 256 bits. La méthode de calcul de la fonction de hachage SHA-256 est la suivante :

import "crypto/sha256"

func main() {
    data := []byte("hello, world!")
    sha := sha256.Sum256(data)
    shaStr := fmt.Sprintf("%x", sha)
    fmt.Println("SHA-256 of the data is:", shaStr)
}

Parmi eux, la fonction sha256.Sum256() peut calculer la valeur de hachage SHA-256, et le type de valeur de retour est un octet tableau de longueur 32. De même, vous devez également utiliser la fonction fmt.Sprintf() pour convertir le tableau d'octets en chaîne hexadécimale.

2. Fonction crc32

CRC32 est un algorithme de contrôle de redondance cyclique couramment utilisé qui peut être utilisé pour vérifier la cohérence et l'intégrité de la transmission de données. La fonction crc32 de Golang prend en charge plusieurs algorithmes CRC32, tels que IEEE, Castagnoli, Koopman, etc.

import "hash/crc32"

func main() {
    data := []byte("hello, world!")
    crc := crc32.ChecksumIEEE(data)
    fmt.Println("CRC32 of the data is:", crc)
}

Parmi eux, la fonction crc32.ChecksumIEEE() peut calculer la valeur CRC32 de l'algorithme IEEE, et le type de valeur de retour est uint32.

3. Résumé

Cet article présente les méthodes de calcul des fonctions de hachage et des fonctions crc32 couramment utilisées dans Golang, notamment SHA-1, MD5, SHA-256 et IEEE CRC32 et d'autres algorithmes. Ces fonctions peuvent être utilisées pour la vérification de l'intégrité de la transmission de données, la vérification des fichiers, etc., et sont l'un des outils couramment utilisés dans la programmation Golang.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn