今天遇到个问题, 如何将 [32]bytestring

1
2
3
4
5
6
7
8
9
// https://play.golang.org/p/JkK_B5609GN

func main() {
    hs := sha256.Sum256([]byte("hahaha"))
    fmt.Println(hs)
}

// =====
// [190 23 140 5 67 235 23 245 243 4 48 33 201 229 252 243 2 133 229 87 164 252 48 156 206 151 255 156 166 24 41 18]

方法1

直接将 hsslice, 但是打印出来的是乱码

1
2
3
4
5
6
7
8
9
// https://play.golang.org/p/RH8_iHLuWeg

func main() {
    hs := sha256.Sum256([]byte("hahaha"))
    fmt.Println(string(hs[:]))
}

// =====
// ��C���0!������W��0����)

方法2

1
2
3
4
5
6
7
8
9
// https://play.golang.org/p/Z1-pU0mjX_B

func main() {
    hs := sha256.Sum256([]byte("hahaha"))
    fmt.Println(fmt.Sprintf("%x", hs))
}

// =====
// be178c0543eb17f5f3043021c9e5fcf30285e557a4fc309cce97ff9ca6182912

方法3

1
2
3
4
5
6
7
8
9
// https://play.golang.org/p/x8ovK9CkRlG

func main() {
    hs := sha256.Sum256([]byte("hahaha"))
    fmt.Println(hex.EncodeToString(hs[:]))
}

// =====
// be178c0543eb17f5f3043021c9e5fcf30285e557a4fc309cce97ff9ca6182912

参考