Go podle Příkladů: SHA256 Hashe

SHA256 hash funkce jsou často používané pro výpočet krátkých identit pro binární nebo textové bloby. Například TLS/SSL certifikáty používají SHA256 pro výpočet podpisu certifikátu. Tady je jak vypočítat SHA256 hashe v Go.

package main

Go implementuje několik hash funkcí v různých balíčcích crypto/*.

import (
    "crypto/sha256"
    "fmt"
)
func main() {
    s := "sha256 this string"

Tady začínáme s novým hashem.

    h := sha256.New()

Write očekává bajty. Pokud máte řetězec s, použijte []byte(s) pro vynucení převodu do bajtů.

    h.Write([]byte(s))

Toto získá finalizovaný výsledek hashe jako výřez bajtů. Parametr funkce Sum může být použitý pro přidání k existujícímu výřezu bajtů: to obvykle není potřeba.

    bs := h.Sum(nil)
    fmt.Println(s)
    fmt.Printf("%x\n", bs)
}

Spuštění programu vypočítá hash a vypíše ho ve lidsky čitelném hexa formátu.

$ go run sha256-hashes.go
sha256 this string
1af1dfa857bf1d8814fe1af8983c18080019922e557f15a8a...

S použitím podobného vzoru můžete vypočítat jiné hashe podobné tomu výše. Například pro výpočet SHA512 hashe importujte crypto/sha512 a použijte sha512.New().

Poznamenejte si, že pokud budete potřebovat kryptograficky bezpečné hashe, měli byste opatrně prozkoumat sílu hash funkcí!

Další příklad: Kódování base64.