【发布时间】:2011-11-02 23:23:41
【问题描述】:
我正在尝试在 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
但是当我尝试获取哈希的“总和”(http://golang.org/pkg/hash/)的字符串时,通过
sumstring := string(sum); // returns 'Ӿ��]앿��N��' or similar
当哈希应该是d3be9e835dec95bfbef34ebe1fbf03da。当我尝试逐字节转换时,我得到了同样的废话,只是字符不同。
我是如何获取哈希的字符串的?
【问题讨论】:
-
你想要一个
base-16的哈希表示, -
请记住:哈希函数的输出是二进制值。您习惯看到的十六进制表示只是一种约定。