2014-09-27 15 views
5

मेरे पास एक आकार का बाइट सरणी है जिसे मुझे md5.Sum() करने के बाद मिला।मैं [आकार] बाइट को स्ट्रिंग में कैसे परिवर्तित करूं?

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

+3

पर एन्कोड करेगा, मैं यह इंगित करना चाहता हूं कि बिना किसी प्रकार के नमक के पासवर्ड बनाना बेहद असुरक्षित और बुरा विचार है। – OneOfOne

उत्तर

14

आप एक टुकड़ा के रूप में यह उल्लेख कर सकते हैं:

pass = string(b[:]) 
4

यह का एक टुकड़ा करें::

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

मैं त्रुटि मिलती है

pass = string(b[:]) 
10

एक छोटी सी देर हो चुकी है लेकिन ध्यान रखें कि string(b[:]) का उपयोग करके मसो प्रिंट करेगा अवैध अक्षर 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) 

playground

+0

'स्ट्रिंग का उपयोग करना (बी [:])' कुछ भी प्रिंट नहीं करता है। – rightfold

+0

@rightfold मेरा मतलब था कि यदि आप परिणामी स्ट्रिंग को मुद्रित करने का प्रयास करते हैं। – OneOfOne

+0

इस पर निर्भर करता है कि आप इसे कैसे प्रिंट करते हैं। – rightfold

0

यह इस

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

या द्वारा हल किया जा सकता

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

यह इसे बेस 64 स्ट्रिंग

संबंधित मुद्दे

 संबंधित मुद्दे