Go语言使用 MD5 生成散列值
MD5 是一种 Hash 算法。MD5(RFC 1321) 是 Rivest 于1991年对 MD4 的改进版本。
MD5 算法的输出是128位。MD5 比 MD4 更加安全,但是过程更加复杂,计算速度也慢一些。
package main
import (
"crypto/md5"
"fmt"
"io"
)
func main() {
str := "123456"
//方法一
data := []byte(str)
has := md5.Sum(data)
md5str1 := fmt.Sprintf("%x", has) //将[]byte转成16进制
fmt.Println(md5str1)
//方法二
w := md5.New()
io.WriteString(w, str)
//将str写入到w中
md5str2 := fmt.Sprintf("%x", w.Sum(nil))
fmt.Println(md5str2)
}
MD5散列的输出结果为128位(bit),按照16进制(4位一个16进制数)编码后,生成32个字符。
以上的输出结果:
e10adc3949ba59abbe56e057f20f883e e10adc3949ba59abbe56e057f20f883e