Heim  >  Artikel  >  Backend-Entwicklung  >  Golang-Funktions-Hash, crc32-, md5- und sha1-Berechnungsmethoden

Golang-Funktions-Hash, crc32-, md5- und sha1-Berechnungsmethoden

WBOY
WBOYOriginal
2023-05-18 08:12:222006Durchsuche

Golang ist eine neue Hochleistungsprogrammiersprache mit einer umfangreichen Standardbibliothek und integrierten Funktionen. Dazu gehören Hash-Funktionen, mit denen Hash-Werte von Daten zur Dateiverifizierung, Datenverifizierung usw. generiert werden können. In diesem Artikel werden die Berechnungsmethoden und Anwendungen der häufig verwendeten Funktionen hash, crc32, md5 und sha1 in Golang vorgestellt.

1. Hash-Funktion

Die Hash-Funktion von Golang umfasst eine Vielzahl von Hash-Algorithmen, wie SHA-1, MD5, SHA-224, SHA-256, SHA-384 und SHA-512 usw. Verschiedene Hashing-Algorithmen haben unterschiedliche Eigenschaften und Anwendungsszenarien.

1, SHA-1

SHA-1 ist ein sicherer Hash-Algorithmus, der Daten beliebiger Länge in einen Hashwert fester Länge umwandeln kann. Die Berechnungsmethode der SHA-1-Hash-Funktion lautet wie folgt:

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)
}

Unter anderem kann die Funktion sha1.Sum() den SHA-1-Hash-Wert berechnen, und der Rückgabewerttyp ist ein Byte-Array mit einer Länge von 20 . Da Hashwerte üblicherweise als hexadezimale Zeichenfolgen dargestellt werden, können Sie mit der Funktion fmt.Sprintf() das Byte-Array in eine hexadezimale Zeichenfolge konvertieren.

2. MD5

MD5 ist ein häufig verwendeter Hash-Algorithmus, der Daten beliebiger Länge in einen 128-Bit-Hash-Wert umwandelt. Die Berechnungsmethode der MD5-Hash-Funktion lautet wie folgt:

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)
}

Unter anderem kann die Funktion md5.Sum() den MD5-Hash-Wert berechnen, und der Rückgabewerttyp ist ein Byte-Array mit einer Länge von 16. Ebenso müssen Sie auch die Funktion fmt.Sprintf() verwenden, um das Byte-Array in eine hexadezimale Zeichenfolge umzuwandeln.

3. SHA-256

SHA-256 ist ein sicherer Hash-Algorithmus, der Daten beliebiger Länge in einen 256-Bit-Hash-Wert umwandelt. Die Berechnungsmethode der SHA-256-Hash-Funktion lautet wie folgt:

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)
}

Unter anderem kann die Funktion sha256.Sum256() den SHA-256-Hash-Wert berechnen, und der Rückgabewerttyp ist ein Byte-Array mit einer Länge von 32 . Ebenso müssen Sie auch die Funktion fmt.Sprintf() verwenden, um das Byte-Array in eine hexadezimale Zeichenfolge umzuwandeln.

2. crc32-Funktion

CRC32 ist ein häufig verwendeter Algorithmus zur zyklischen Redundanzprüfung, mit dem die Konsistenz und Integrität der Datenübertragung überprüft werden kann. Die crc32-Funktion von Golang unterstützt mehrere CRC32-Algorithmen wie IEEE, Castagnoli, Koopman usw.

import "hash/crc32"

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

Unter diesen kann die Funktion crc32.ChecksumIEEE() den CRC32-Wert des IEEE-Algorithmus berechnen, und der Rückgabewerttyp ist uint32.

3. Zusammenfassung

In diesem Artikel werden die in Golang häufig verwendeten Berechnungsmethoden für Hash-Funktionen und CRC32-Funktionen vorgestellt, einschließlich Algorithmen wie SHA-1, MD5, SHA-256 und IEEE CRC32. Diese Funktionen können zur Integritätsüberprüfung der Datenübertragung, Dateiüberprüfung usw. verwendet werden und sind eines der am häufigsten verwendeten Werkzeuge in der Golang-Programmierung.

Das obige ist der detaillierte Inhalt vonGolang-Funktions-Hash, crc32-, md5- und sha1-Berechnungsmethoden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn