代码改变世界

golang md5 结果类型

2017-08-28 12:26  DillGao  阅读(1036)  评论(0编辑  收藏  举报

golang  md5 结果类型

 

  1 package main
  2
  3 import (
  4         "crypto/md5"
  5         "encoding/hex"
  6         "fmt"
  7 )
  8
  9 func main() {
 10         data := []byte("testing")
 11         b := md5.Sum(data)
 12         fmt.Println(string(b)) //错误,不能直接转 string 
 13 //      fmt.Println(hex.EncodeToString(b[:]))
 14 //      fmt.Println(b[:])
 15 }
# command-line-arguments
GoProjcet/src/exercise/test_md5.go:12: cannot convert b (type [16]byte) to type string

 

 

Note:

Also note that converting a "random" slice of bytes to a string is most likely not what you want because a "random" slice of bytes may not be a valid UTF-8 byte sequence.

Instead use the encoding/hex package to convert the result to a hex string like this:

fmt.Println(hex.EncodeToString(b[:]))


  1 package main
  2
  3 import (
  4         "crypto/md5"
  5         "encoding/hex"
  6         "fmt"
  7 )
  8
  9 func main() {
 10         data := []byte("testing")
 11         b := md5.Sum(data)
 12 //      fmt.Println(string(b))
 13         fmt.Println(hex.EncodeToString(b[:]))
 14         fmt.Println(b[:])
 15 }
ae2b1fca515949e5d54fb22b8ed95575
[174 43 31 202 81 89 73 229 213 79 178 43 142 217 85 117]