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

  1. package main
  2. import (
  3. "crypto/md5"
  4. "encoding/hex"
  5. "fmt"
  6. "io"
  7. "log"
  8. )
  9. // 方式1
  10. func strMd5_1(str string) (retMd5 string) {
  11. h := md5.New()
  12. h.Write([]byte(str))
  13. return hex.EncodeToString(h.Sum(nil))
  14. }
  15. // 方式2
  16. func strMd5_3(str string) (retMd5 string) {
  17. w := md5.New()
  18. io.WriteString(w, str)
  19. md5str := fmt.Sprintf("%x", w.Sum(nil))
  20. return md5str
  21. }
  22. // 方式3
  23. func strMd5_2(str string) (retMd5 string) {
  24. data := []byte(str)
  25. has := md5.Sum(data)
  26. md5str := fmt.Sprintf("%x", has)
  27. return md5str
  28. }
  29. func main() {
  30. log.SetFlags(log.Lshortfile)
  31. var str1 = "Golang获取字符串md5 https://www.yuque.com/uuu/go/md5"
  32. log.Println(strMd5_1(str1)) // 9f7cfc4102df0981ee2751dc9ecea6de
  33. log.Println(strMd5_2(str1)) // 9f7cfc4102df0981ee2751dc9ecea6de
  34. log.Println(strMd5_3(str1)) // 9f7cfc4102df0981ee2751dc9ecea6de
  35. }

参考文档 https://haicoder.net/note/golang/golang-str-md5.html