在 Go 语言 中,如何计算 字符串 的 MD5 值。
package main
import (
"crypto/md5"
"encoding/hex"
"fmt"
"io"
"log"
)
// 方式1
func strMd5_1(str string) (retMd5 string) {
h := md5.New()
h.Write([]byte(str))
return hex.EncodeToString(h.Sum(nil))
}
// 方式2
func strMd5_3(str string) (retMd5 string) {
w := md5.New()
io.WriteString(w, str)
md5str := fmt.Sprintf("%x", w.Sum(nil))
return md5str
}
// 方式3
func strMd5_2(str string) (retMd5 string) {
data := []byte(str)
has := md5.Sum(data)
md5str := fmt.Sprintf("%x", has)
return md5str
}
func main() {
log.SetFlags(log.Lshortfile)
var str1 = "Golang获取字符串md5 https://www.yuque.com/uuu/go/md5"
log.Println(strMd5_1(str1)) // 9f7cfc4102df0981ee2751dc9ecea6de
log.Println(strMd5_2(str1)) // 9f7cfc4102df0981ee2751dc9ecea6de
log.Println(strMd5_3(str1)) // 9f7cfc4102df0981ee2751dc9ecea6de
}
参考文档 https://haicoder.net/note/golang/golang-str-md5.html