Go by Example: SHA256 Hashes

Los hashes SHA256 son frecuentemente utilizados para calcular identidades cortas de archivos binarios o bloques de texto. Por ejemplo, los certificados TLS/SSL utilizan SHA256 para calcular la firma de un certificado. Aquí te mostramos cómo calcular hashes SHA256 en Go.

package main

Go implementa varias funciones de hash en varios paquetes crypto/*.

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

Aquí comenzamos con un nuevo hash.

    h := sha256.New()

Write espera bytes. Si tienes una cadena s, usa []byte(s) para convertirla a bytes.

    h.Write([]byte(s))

Esto obtiene el resultado del hash finalizado como una secuencia de bytes. El argumento de Sum puede ser utilizado para añadir a una secuencia de bytes existente: usualmente no es necesario.

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

Ejecutar el programa calcula el hash y lo imprime en un formato hexadecimal legible por humanos.

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

Puedes calcular otros hashes utilizando un patrón similar al mostrado arriba. Por ejemplo, para calcular hashes SHA512 importa crypto/sha512 y usa sha512.New().

Ten en cuenta que si necesitas hashes criptográficamente seguros, deberías investigar cuidadosamente la fortaleza del hash!

Siguiente ejemplo: Base64 Encoding.