Go语言使用 SHA256 生成散列值

Go 语言标准库中提供了 SHA256 算法,可以直接引入使用。

SHA256 算法是一个哈希函数,又称散列算法,是一种从任何一种数据中创建小的数字 “指纹” 的方法。

散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值的指纹。

SHA256 算法的输出为 256bit 的散列值。

 

实现代码如下:

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)
}

测试结果如下:

b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

MD5 是一种 Hash 算法。MD5(RFC 1321) 是 Rivest 于1991年对 MD4 的改进版本。MD5 算法的输出是128位。MD5 比 MD4 更加安全,但是过程更加复杂,计算速度也慢一 ...