Go by Example: Hash SHA256

Gli hash SHA256 sono frequentemente usati per calcolare identità brevi per blob binari o di testo. Per esempio, i certificati TLS/SSL usano SHA256 per calcolare la firma di un certificato. Ecco come calcolare hash SHA256 in Go.

package main

Go implementa diverse funzioni hash in vari pacchetti crypto/*.

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

Qui iniziamo con un nuovo hash.

    h := sha256.New()

Write si aspetta byte. Se hai una stringa s, usa []byte(s) per convertirla in byte.

    h.Write([]byte(s))

Questo ottiene il risultato hash finalizzato come slice di byte. L’argomento di Sum può essere usato per aggiungere a una slice di byte esistente: di solito non è necessario.

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

Eseguire il programma calcola l’hash e lo stampa in formato esadecimale leggibile.

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

Puoi calcolare altri hash usando un pattern simile a quello mostrato sopra. Per esempio, per calcolare hash SHA512 importa crypto/sha512 e usa sha512.New().

Nota che se hai bisogno di hash crittograficamente sicuri, dovresti ricercare attentamente la forza dell’hash!

Prossimo esempio: .