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]