Copyright © 2022-2024 aizws.net · 网站版本: v1.2.6·内部版本: v1.23.3·
页面加载耗时 0.00 毫秒·物理内存 74.6MB ·虚拟内存 1303.8MB
欢迎来到 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 更加安全,但是过程更加复杂,计算速度也慢一 ...