Go 示例: SHA256 哈希

SHA256 哈希 通常用于计算二进制或文本块的简短标识。例如,TLS/SSL 证书使用 SHA256 来计算证书的签名。以下是使用 Go 计算 SHA256 哈希的方法。

package main

Go 在各种 crypto/* 包中实现了多个哈希函数。

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

这里我们从一个新的哈希开始。

    h := sha256.New()

Write 期望字节。如果您有一个字符串 s,请使用 []byte(s) 将其强制转换为字节。

    h.Write([]byte(s))

这将获得最终的哈希结果作为字节切片。Sum 的参数可用于追加到现有字节切片:通常不需要。

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

运行程序将计算哈希并以人类可读的十六进制格式打印出来。

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

您可以使用与上面类似的模式计算其他哈希。例如,要计算 SHA512 哈希,请导入 crypto/sha512 并使用 sha512.New()

请注意,如果您需要加密安全的哈希,您应该仔细研究 哈希强度

下一个示例:Base64 编码.