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