Copyright © 2022-2025 aizws.net · 网站版本: v1.2.6·内部版本: v1.25.2·
页面加载耗时 0.00 毫秒·物理内存 181.5MB ·虚拟内存 1439.6MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
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 更加安全,但是过程更加复杂,计算速度也慢一 ...