이동

2011-11-02 5 views
3

내가 이렇게 같은 이동에서 파일의 MD5 해시를 얻으려고에 진수로 인코딩 된 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/) 해시는 d3be9e835dec95bfbef34ebe1fbf03da 있어야 할 때. 바이트 단위로 변환하려고하면 다른 문자로만 같은 종류의 넌센스가 생깁니다.

해시 문자열을 가져 오려면 어떻게해야합니까?

+1

당신은 해시의'기본-16' 표현을 원하는 사용하여 문자열 또는 바이트 조각의 진수 표현을 얻을 수있는, 마음에 – Blender

+2

곰 : 해시 함수의 출력 인 이진 값. 보는 데 사용한 16 진수 표현은 단지 관습에 불과합니다. –

답변

13

기본적으로 바이너리 데이터가 있지만 16 진수를 기대하는 것처럼 보입니다. 변환 루틴을위한 hex 패키지를 살펴보십시오. 특히 EncodeToString입니다. 나는 Go 프로그래머가 아니지만 sumhex.EncodeToString에 전달하면 예상 한 답변을 얻을 수있을 것이라고 생각합니다.

5

교대로, 당신은 쉽게 fmt.Sprintf("%x", sum)

+0

IMO이 방법이 선호됩니다. – Dale