43

http://play.golang.org/p/SKtaPFtnKO

func md(str string) []byte {
    h := md5.New()
    io.WriteString(h, str)

    fmt.Printf("%x", h.Sum(nil))
    // base 16, with lower-case letters for a-f
    return h.Sum(nil)
}

必要なのは、入力文字列から変換されたハッシュキー文字列だけです。h.Sum(nil) を使用してバイト形式で取得でき、ハッシュキーを %x 形式で出力できました。しかし、この関数から %x 形式を返したいので、それを使用して電子メール アドレスをハッシュ キーに変換し、それを使用して Gravatar.com にアクセスできます。

Goでmd5関数を使用して%x形式のハッシュキーを取得するにはどうすればよいですか?

ありがとう、

4

2 に答える 2

50

私が正しく理解している場合は、%x 形式を返したいと考えています。

16進数をインポートしてEncodeToStringメソッドを使用できます

str := hex.EncodeToString(h.Sum(nil))

または単に Sprintf 値:

func md(str string) string {
    h := md5.New()
    io.WriteString(h, str)

    return fmt.Sprintf("%x", h.Sum(nil))
}

Sprintf は、書式文字列を解析して、見つかった型に基づいて反映する必要があるため、遅いことに注意してください。

http://play.golang.org/p/vsFariAvKo

于 2013-10-12T00:09:31.760 に答える