我试图在Go中获取文件的md5哈希值,如下所示:
running_hash := md5.New(); // type hash.Hash
running_hash.Write(data); // data is []byte
sum := running_hash.Sum(); // []uint8 according to the compiler
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试获取哈希的'sum'字符串(http://golang.org/pkg/hash/)时,通过
sumstring := string(sum); // returns '???]???N??' or similar
Run Code Online (Sandbox Code Playgroud)
什么时候哈希应该是d3be9e835dec95bfbef34ebe1fbf03da.当我尝试逐字节转换时,我得到了同样的废话,只有不同的字符.
我的意思是如何获取哈希的字符串?
Jon*_*eet 13
基本上,你有二进制数据,但看起来你正在期待十六进制.看一下转换例程的十六进制包,尤其如此EncodeToString.我不是Go程序员,但我想如果你只是sum进入hex.EncodeToString,你会得到你期望的答案.