SHA256 散列(hash) 经常用于生成二进制文件或者文本块的短标识。 例如,TLS/SSL 证书使用 SHA256 来计算一个证书的签名。 这是 Go 中如何进行 SHA256 散列计算的例子。 |
|
package main |
|
Go 在多个 |
import ( "crypto/sha256" "fmt" ) |
func main() { s := "sha256 this string" |
|
这里我们从一个新的散列开始。 |
h := sha256.New() |
写入要处理的字节。如果是一个字符串,
需要使用 |
h.Write([]byte(s)) |
|
bs := h.Sum(nil) |
SHA256 值经常以 16 进制输出,例如在 git commit 中。
我们这里也使用 |
fmt.Println(s) fmt.Printf("%x\n", bs) } |
运行程序计算散列值,并以可读的 16 进制格式输出。 |
$ go run sha256-hashes.go sha256 this string 1af1dfa857bf1d8814fe1af8983c18080019922e557f15a8a... |
你可以使用和上面相似的方式来计算其他形式的散列值。
例如,计算 SHA512 散列,
引入 |
|
注意,如果你需要密码学上的安全散列,你需要仔细的研究一下 加密散列函数。 |
下一个例子: Base64 编码