2014-09-27 12 views
5

Mam wielkość tablicy bajtowej, że mam po wykonaniu md5.Sum().Jak przekonwertować bajt [Rozmiar] na ciąg w Go?

data := []byte("testing") 
var pass string 
var b [16]byte 
b = md5.Sum(data) 
pass = string(b) 

pojawia się błąd:

cannot convert b (type [16]byte) to type string

+3

Chciałbym podkreślić, że stworzenie hasła bez soli jest bardzo niebezpieczne i nie jest dobrym pomysłem. – OneOfOne

Odpowiedz

14

Można odwołać się do niej jak kawałek:

pass = string(b[:]) 
10

Trochę późno, ale pamiętaj, że użycie polecenia string(b[:]) spowoduje wydruk mos nieważne znaki.

Jeśli próbujesz uzyskać reprezentację hex o tym jak PHP można użyć coś takiego:

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

+0

Użycie 'string (b [:])' nie powoduje niczego. – rightfold

+0

@rightfold Miałem na myśli, jeśli spróbujesz wydrukować wynikowy ciąg. – OneOfOne

+0

W zależności od tego, jak je wydrukujesz. – rightfold

0

może być rozwiązany przez tego

pass = fmt.Sprintf("%x", b) 

lub

import "encoding/base64" 
pass = base64.StdEncoding.EncodeToString(b[:]) 

to będzie kodowanie go do base64 string

Powiązane problemy