I have a sized byte array that I got after doing md5.Sum()
.
data := []byte("testing")
var pass string
var b [16]byte
b = md5.Sum(data)
pass = string(b)
I get the error:
cannot convert b (type [16]byte) to type string
A byte in Go is an unsigned 8-bit integer. It has type uint8 . A byte has a limit of 0 – 255 in numerical range. It can represent an ASCII character.
Like byte type, Go has another integer type rune . It is aliases for int32 (4 bytes) data types and is equal to int32 in all ways.
You can refer to it as a slice:
pass = string(b[:])
A little late but keep in mind that using string(b[:])
will print mostly invalid characters.
If you're trying to get a hex representation of it like php you can use something like:
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)
playground
it can be solved by this
pass = fmt.Sprintf("%x", b)
or
import "encoding/base64"
pass = base64.StdEncoding.EncodeToString(b[:])
this will encoding it to base64 string
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With