Sha256 Hashes

SHA256 Hashes #

// [_SHA256 hashes_](https://en.wikipedia.org/wiki/SHA-2) são
// frequentemente utilizadas para computar identidades em binário
// ou pequenos textos. Por exemplo, certificados TLS/SSL usam SHA256
// para computar a assinatura do certificado. Aqui estã como computar
// hashes SHA256 em Go.

package main

// Go implementa várias funções hash em seus respectivos
// pacotes `crypto/*`.
import (
	"crypto/sha256"
	"fmt"
)

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

	// Aqui é iniciado uma nova hash.
	h := sha256.New()

	// `Write` espera bytes. É possível utilizar `[]byte(s)`
	// em uma string `s` para converte-la para bytes.
	h.Write([]byte(s))

	// Aqui o resultado da hash é retornado como slice de bytes.
	// O argumento passado para `Sum` pode ser usado para acrescentar
	// algo para um hash em slice de byte já existente.
	bs := h.Sum(nil)

	fmt.Println(s)
	fmt.Printf("%x\n", bs)
}
# Ao executar o código, é exibida a hash em formato hex
$ go run sha256-hashes.go
sha256 this string
1af1dfa857bf1d8814fe1af8983c18080019922e557f15a8a...


# Também é possível computar outras hashes usando padrão 
# similar visto anteriormente. Por exemplo, para computar
# hashes SHA512 é preciso importar `crypto/sha512` e
# utilizar `sha512.New()`.

# Note que se você precisa de hashes criptograficamente 
# seguras é bom pesquisar um pouco sobre
# [hash strength](https://en.wikipedia.org/wiki/Cryptographic_hash_function)!