发布企业信息的网站,苏州有什么好玩的,望野怎么读,互联网推广模式文章目录前言一、MD5是什么#xff1f;二、go语言实现前言
提示#xff1a;以下是本篇文章正文内容#xff0c;下面案例可供参考
一、MD5是什么#xff1f;
MD5信息摘要算法#xff08;英语#xff1a;MD5 Message-Digest Algorithm#xff09;#xff0c;一种被广泛…
文章目录前言一、MD5是什么二、go语言实现前言
提示以下是本篇文章正文内容下面案例可供参考
一、MD5是什么
MD5信息摘要算法英语MD5 Message-Digest Algorithm一种被广泛使用的密码散列函数可以产生出一个128位16字节的散列值hash value用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特Ronald Linn Rivest设计于1992年公开用以取代MD4算法。这套算法的程序在 RFC 1321 标准中被加以规范。1996年后该算法被证实存在弱点可以被加以破解对于需要高度安全性的数据专家一般建议改用其他算法如SHA-2。2004年证实MD5算法无法防止碰撞collision因此不适用于安全性认证如SSL公开密钥认证或是数字签名等用途。
二、go语言实现
package mainimport (crypto/md5encoding/hexfmt
)func main() {hash : md5.New()hash.Write([]byte(hello baby))//io.WriteString(hash, hello baby!)result : hash.Sum (nil)fmt.Println(hex.EncodeToString(result))hash.Reset()hash.Write([]byte(hello baby123))result hash.Sum(nil)fmt.Println(hex.EncodeToString(result))//fmt.Printf(%x\n, result)
}//4be678c3cfbd2cebe0e36503d53e6767
//4be678c3cfbd2cebe0e36503d53e6767
//292bf3c832cce2ab5d4f9775596b13bd
//3132334be678c3cfbd2cebe0e36503d53e6767func main6_2() {result : md5.Sum([]byte(hello baby))fmt.Println(hex.EncodeToString(result[:]))
}/*
两种方式的优缺点优点 缺点
方式一 可以对哈希对象多次复用 代码繁琐
方式二 代码简洁 对象不能复用*/