Golang获取字符串md5

问题描述

Go 语言 中,如何计算 字符串 的 MD5 值。

分析

在 Golang 中,我们要计算一个字符串的 MD5 值,只需要使用内置的 md5 包即可。

Golang计算MD5

方案一

package main import ( "crypto/md5" "encoding/hex" "fmt" ) func strMd5(str string) (retMd5 string) { h := md5.New() h.Write([]byte(str)) return hex.EncodeToString(h.Sum(nil)) } func main() { fmt.Println("嗨客网(www.haicoder.net)") var str1 = "haicoder.net" retMd5 := strMd5(str1) fmt.Println("Md5 =", retMd5) }

此时,我们运行程序,控制台输出如下:

09_Go语言计算字符串md5.png

我们直接使用了 md5 包里面的函数进行对字符串进行 md5 的计算,并以字符串的形式返回计算好的 md5 值。

方案二

package main import ( "crypto/md5" "fmt" ) func strMd5(str string) (retMd5 string) { data := []byte(str) has := md5.Sum(data) md5str := fmt.Sprintf("%x", has) return md5str } func main() { fmt.Println("嗨客网(www.haicoder.net)") var str1 = "haicoder.net" retMd5 := strMd5(str1) fmt.Println("Md5 =", retMd5) }

此时,我们运行程序,控制台输出如下:

10_Go语言计算字符串md5.png

我们看到,同样实现了计算 md5 的值。

方案三

package main import ( "crypto/md5" "fmt" "io" ) func strMd5(str string) (retMd5 string) { w := md5.New() io.WriteString(w, str) md5str := fmt.Sprintf("%x", w.Sum(nil)) return md5str } func main() { fmt.Println("嗨客网(www.haicoder.net)") var str1 = "haicoder.net" retMd5 := strMd5(str1) fmt.Println("Md5 =", retMd5) }

此时,我们运行程序,控制台输出如下:

11_Go语言计算字符串md5.png

同样实现了计算 md5 的值。