Heim > Backend-Entwicklung > Golang > Golang bittet um Haschisch

Golang bittet um Haschisch

王林
Freigeben: 2023-05-16 11:21:07
Original
910 Leute haben es durchsucht

Hash ist eine Funktion, mit der eine Nachricht beliebiger Länge in einen Digest fester Länge komprimiert werden kann. Im Allgemeinen ordnet eine Hash-Funktion jede Eingabe einer Ausgabezeichenfolge fester Länge zu. Verschiedene Eingaben können derselben Ausgabe zugeordnet werden, was als Hash-Kollision bezeichnet wird. Hash-Funktionen werden häufig in der Informationssicherheit, der Datenintegritätsprüfung und anderen Bereichen eingesetzt. In diesem Artikel stellen wir die Verwendung von Hash-Funktionen in der Go-Sprache vor.

Es gibt viele Arten von Hash-Funktionen und jede Hash-Funktion hat ihre eigenen einzigartigen Eigenschaften, wie z. B. die Länge des Hash-Werts, Sicherheit, Geschwindigkeit usw. Zu den in der Go-Sprache häufig verwendeten Hash-Funktionen gehören MD5, SHA-1, SHA-256 usw. Diese Funktionen implementieren die crypto.Hash-Schnittstelle und können zum Generieren von Nachrichtenauszügen verwendet werden.

Im Folgenden stellen wir vor, wie Sie die Funktionen MD5, SHA-1 und SHA-256 verwenden.

MD5

MD5 ist eine weit verbreitete Hash-Funktion, die Nachrichten beliebiger Länge in einen 128-Bit-Hash-Wert komprimiert. In der Go-Sprache können Sie die New-Funktion des crypto/md5-Pakets verwenden, um die MD5-Hash-Funktion zu erstellen. Wenn Sie diese Funktion aufrufen, wird ein Zeiger vom Typ Hash zurückgegeben. Mit diesem Zeiger können Sie die Write-Methode aufrufen, um die Daten einzugeben, für die der Hash-Wert berechnet werden muss, und schließlich die Sum-Methode aufrufen, um den berechneten Hash-Wert zu erhalten. Der Beispielcode lautet wie folgt:

package main

import (
    "crypto/md5"
    "fmt"
)

func main() {
    data := []byte("hello world")
    hash := md5.New()
    hash.Write(data)
    fmt.Printf("%x
", hash.Sum(nil))
}
Nach dem Login kopieren

Das Ausgabeergebnis ist:

5eb63bbbe01eeed093cb22bb8f5acdc3
Nach dem Login kopieren

SHA-1

SHA-1 ist eine Hash-Funktion basierend auf dem MD5-Algorithmus, die Nachrichten beliebiger Länge in einen 160-Bit-Hash-Wert komprimiert. In der Go-Sprache können Sie die New-Funktion des crypto/sha1-Pakets verwenden, um eine SHA-1-Hash-Funktion zu erstellen. Wenn Sie diese Funktion aufrufen, wird ein Zeiger vom Typ Hash zurückgegeben. Mit diesem Zeiger können Sie die Write-Methode aufrufen, um die Daten einzugeben, für die der Hash-Wert berechnet werden muss, und schließlich die Sum-Methode aufrufen, um den berechneten Hash-Wert zu erhalten. Der Beispielcode lautet wie folgt:

package main

import (
    "crypto/sha1"
    "fmt"
)

func main() {
    data := []byte("hello world")
    hash := sha1.New()
    hash.Write(data)
    fmt.Printf("%x
", hash.Sum(nil))
}
Nach dem Login kopieren

Das Ausgabeergebnis ist:

2ef7bde608ce5404e97d5f042f95f89f1c232871
Nach dem Login kopieren

SHA-256

SHA-256 ist eine Hash-Funktion, die eine Nachricht beliebiger Länge in einen 256-Bit-Hash-Wert komprimiert. In der Go-Sprache können Sie die New-Funktion des crypto/sha256-Pakets verwenden, um eine SHA-256-Hash-Funktion zu erstellen. Wenn Sie diese Funktion aufrufen, wird ein Zeiger vom Typ Hash zurückgegeben. Mit diesem Zeiger können Sie die Write-Methode aufrufen, um die Daten einzugeben, für die der Hash-Wert berechnet werden muss, und schließlich die Sum-Methode aufrufen, um den berechneten Hash-Wert zu erhalten. Der Beispielcode lautet wie folgt:

package main

import (
    "crypto/sha256"
    "fmt"
)

func main() {
    data := []byte("hello world")
    hash := sha256.New()
    hash.Write(data)
    fmt.Printf("%x
", hash.Sum(nil))
}
Nach dem Login kopieren

Das Ausgabeergebnis ist:

b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
Nach dem Login kopieren

Wie Sie sehen können, haben die von verschiedenen Hash-Funktionen generierten Hash-Werte unterschiedliche Längen. Die geeignete Hash-Funktion sollte entsprechend den spezifischen Anforderungen der Anwendung ausgewählt werden.

Zusammenfassung: Hash-Funktionen können Nachrichten beliebiger Länge in Hash-Werte fester Länge komprimieren. Die Go-Sprache bietet eine Vielzahl von Hash-Funktionsimplementierungen, und wir können entsprechend den tatsächlichen Anforderungen eine geeignete Hash-Funktion auswählen. Hash-Funktionen werden häufig in Bereichen wie Informationssicherheit und Datenintegritätsprüfung eingesetzt.

Das obige ist der detaillierte Inhalt vonGolang bittet um Haschisch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage