34 lines
832 B
Go
34 lines
832 B
Go
// [_SHA256 hashes_](https://en.wikipedia.org/wiki/SHA-2) 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
|
|
|
|
// Go implements several hash functions in various
|
|
// `crypto/*` packages.
|
|
import (
|
|
"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)
|
|
}
|