SHA256 Hashes

SHA256 hashes are frequently used to compute short identities for binary or text blobs. For example, TLS/SSL certificates use SHA256 to compute a certificate’s signature. Here’s how to compute SHA256 hashes in Go

package main

import (
    // Go implements several hash functions in various crypto/* packages.
    "crypto/sha256"
    "fmt"
)

func main() {
    s := "sha256 this string"

    // Here we start with a new hash.
    h := sha256.New()

    // Write expects bytes.
    // If you have a string s, use []byte(s) to coerce it to bytes.
    h.Write([]byte(s))

    // This gets the finalized hash result as a byte slice.
    // The argument to Sum can be used to append to an existing byte slice
    // it usually isn’t needed.
    bs := h.Sum(nil)

    fmt.Println(s)
    fmt.Printf("%x\n", bs)
}

Running the program computes the hash and prints it in a human-readable hex format.

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

You can compute other hashes using a similar pattern to the one shown above. For example, to compute SHA512 hashes import crypto/sha512 and use sha512.New().

Note that if you need cryptographically secure hashes, you should carefully research hash strength

Source | License