crypto/hmac(加密哈希算法)
发布日期:2021-05-06 03:46:13 浏览次数:20 分类:原创文章

本文共 1650 字,大约阅读时间需要 5 分钟。

package mainimport (	"crypto/hmac"	"crypto/md5"	"crypto/sha256"	"fmt")//sha256加密算法func Sha256(message string, key string) (secretMessage []byte) {   	//创建对应的sha256哈希加密算法,这里的key为加密密钥	hash := hmac.New(sha256.New, []byte(key))	// 写入加密数据,这里的"abc123"为加密信息,即需要加密的对象	hash.Write([]byte(message))	secretMessage = hash.Sum(nil)	return}func CheckSha256(message, secrectMessage, key []byte) bool {   	//message为需要加密的原始信息,secrectMessage为加密后的字符串,key为加密密钥	hash := hmac.New(sha256.New, key) // 创建hash加密算法	//对原始信息进行加密	hash.Write(message)          // 写入数据	expectedMAC := hash.Sum(nil) //获取加密后的hash	// 比较预期的hash和实际的hash	return hmac.Equal(expectedMAC, secrectMessage)}//md5加密算法func Md5(message string, key string) (secretMessage []byte) {   	//创建对应的sha256哈希加密算法,这里的key为加密密钥	hash := hmac.New(md5.New, []byte(key))	// 写入加密数据,这里的"abc123"为加密信息,即需要加密的对象	hash.Write([]byte(message))	secretMessage = hash.Sum(nil)	return}func CheckMd5(message, secrectMessage, key []byte) bool {   	//message为需要加密的原始信息,secrectMessage为加密后的字符串,key为加密密钥	hash := hmac.New(md5.New, key) // 创建hash加密算法	//对原始信息进行加密	hash.Write(message)          // 写入数据	expectedMAC := hash.Sum(nil) //获取加密后的hash	// 比较预期的hash和实际的hash	return hmac.Equal(expectedMAC, secrectMessage)}func main() {   	//创建信息和密钥	key := "abc123"	message := "15956651891"	//sha256加密算法,加密	Hash256Message := Sha256(message, key)	fmt.Printf("Hash256Message: %+v", Hash256Message)	//校验是否是相同的密码	fmt.Println("是否相同:", CheckSha256([]byte(message), Hash256Message, []byte(key)))	//Md5加密算法,加密	Md5Message := Md5(message, key)	fmt.Printf("Md5Message: %+v", Md5Message)	//校验是否是相同的密码	fmt.Println("是否相同:", CheckMd5([]byte(message), Md5Message, []byte(key)))}
上一篇:toml配置文件的使用方法:toml.DecodeFile
下一篇:读写文件操作OpenFile()

发表评论

最新留言

不错!
[***.144.177.141]2025年03月13日 10时56分33秒