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
计算机系统中,数据存储是以字节为单位的,每个地址单元都对应着一个字节,一个字节为 8bit。但是在 C 语言中除了8bit 的 char 之外,还有 16bit 的 short 型,32bit 的 long 型(要看具体 ...