我在做md5.Sum()
后得到了一个大小的字节数组。如何在Go中将[Size]字节转换为字符串?
data := []byte("testing")
var pass string
var b [16]byte
b = md5.Sum(data)
pass = string(b)
我得到的错误:
cannot convert b (type [16]byte) to type string
我在做md5.Sum()
后得到了一个大小的字节数组。如何在Go中将[Size]字节转换为字符串?
data := []byte("testing")
var pass string
var b [16]byte
b = md5.Sum(data)
pass = string(b)
我得到的错误:
cannot convert b (type [16]byte) to type string
你可以称其为一个切片:
pass = string(b[:])
使这片:
pass = string(b[:])
小但请记住,使用string(b[:])
将打印mos tly无效的字符。
如果你想获得它像PHP中的十六进制表示,你可以使用类似:
data := []byte("testing")
b := md5.Sum(data)
//this is mostly invalid characters
fmt.Println(string(b[:]))
pass := hex.EncodeToString(b[:])
fmt.Println(pass)
// or
pass = fmt.Sprintf("%x", b)
fmt.Println(pass)
它可以通过这个
pass = fmt.Sprintf("%x", b)
或得到解决
import "encoding/base64"
pass = base64.StdEncoding.EncodeToString(b[:])
这将编码到base64字符串
我想指出,创建一个没有任何种类的盐的密码是非常不安全和一个坏主意。 – OneOfOne 2014-09-27 18:54:16