Ich begann gerade mit Golang und schreibe ein sehr kleines Skript, alles funktioniert außer für sha224. Kann mir jemand erklären, warum ich den Fehler (in Bezug auf mein Skript) bekomme? Ich brauche diesen Fehler nicht behoben, ich will es verstehen, um zukünftige Fehler von meiner Seite zu verhindern.GetSha224 in crypto/sha256 undeclared Name
Der Fehler 49:12: nicht deklarierter Name: sha224 zeigt an, dass ich nicht etwas deklariert habe, aber ich kann es nicht finden, weil ich das gleiche für alle Hashing Algorythmen tat.
Ich bin kein Programmierer, noch ein Spezialist für Golang. Es geht um mein erstes Go-Programm.
package main
import (
"crypto/md5"
"crypto/sha1"
"crypto/sha256"
"crypto/sha512"
"encoding/hex"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "http://45.32.153.207/index2.php"
fmt.Printf("HTML code of %s ...\n", url)
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
html, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Printf("%s\n", html)
toHash := CToGoString(html[:])
fmt.Printf("%s\n", GetMD5Hash(toHash))
fmt.Printf("%s\n", GetSha1Hash(toHash))
fmt.Printf("%s\n", GetSha224Hash(toHash))
fmt.Printf("%s\n", GetSha256Hash(toHash))
fmt.Printf("%s\n", GetSha512Hash(toHash))
}
func GetMD5Hash(text string) string {
hasher := md5.New()
hasher.Write([]byte(text))
return hex.EncodeToString(hasher.Sum(nil))
}
func GetSha1Hash(text string) string {
hasher := sha1.New()
hasher.Write([]byte(text))
return hex.EncodeToString(hasher.Sum(nil))
}
func GetSha224Hash(text string) string {
hasher := sha224.New()
hasher.Write([]byte(text))
return hex.EncodeToString(hasher.Sum(nil))
}
func GetSha256Hash(text string) string {
hasher := sha256.New()
hasher.Write([]byte(text))
return hex.EncodeToString(hasher.Sum(nil))
}
func GetSha512Hash(text string) string {
hasher := sha512.New()
hasher.Write([]byte(text))
return hex.EncodeToString(hasher.Sum(nil))
}
func CToGoString(c []byte) string {
n := -1
for i, b := range c {
if b == 0 {
break
}
n = i
}
return string(c[:n+1])
}
vielen Dank für die Einzeiler, das ist sehr hilfreich und ich änderte sich alles jetzt in meinem Skript. scheint auf die gleiche Weise zu funktionieren. – snapo