Go语言实现SHA256生成散列值
SHA256是一种常用的单向散列函数(哈希函数),能够生成256比特的散列值.
实现代码如下:
import (
"crypto/sha256"
"encoding/hex"
"fmt"
)
//SHA256生成哈希值
func GetSHA256HashCode(message []byte)string{
//方法一:
//创建一个基于SHA256算法的hash.Hash接口的对象
hash := sha256.New()
//输入数据
hash.Write(message)
//计算哈希值
bytes := hash.Sum(nil)
//将字符串编码为16进制格式,返回字符串
hashCode := hex.EncodeToString(bytes)
//返回哈希值
return hashCode
//方法二:
//bytes2:=sha256.Sum256(message)//计算哈希值,返回一个长度为32的数组
//hashcode2:=hex.EncodeToString(bytes2[:])//将数组转换成切片,转换成16进制,返回字符串
//return hashcode2
}
测试代码如下:
func main(){
message:=[]byte("hello world")
hashCode:=GetSHA256HashCode(message)
fmt.Println(hashCode)
}
测试结果如下: