如何从Golang中的字符串中获取MD5哈希?

时间:2010-03-04 08:47:15

标签: cryptography md5 go

这就是我从md5开始获取string哈希的方式:

import "crypto/md5"

var original = "my string comes here"
var hash = md5.New(original)

但显然这不是它的工作原理。有人可以为我提供一份工作样本吗?

6 个答案:

答案 0 :(得分:36)

参考Sum,对我而言,以下工作:

package main

import (
    "crypto/md5"
    "fmt"
)

func main() {
    data := []byte("hello")
    fmt.Printf("%x", md5.Sum(data))
}

答案 1 :(得分:35)

我发现这个解决方案运作良好

package main

import (
    "crypto/md5"
    "encoding/hex"
    "fmt"
)

func main() {
    var str string = "hello world"

    hasher := md5.New()
    hasher.Write([]byte(str))
    fmt.Println(str)
    fmt.Println(hex.EncodeToString(hasher.Sum(nil)))
}

答案 2 :(得分:34)

来自crypto/md5 doc

package main

import (
    "crypto/md5"
    "fmt"
    "io"
)

func main() {
    h := md5.New()
    io.WriteString(h, "The fog is getting thicker!")
    fmt.Printf("%x", h.Sum(nil))
}

答案 3 :(得分:22)

import (
    "crypto/md5"
    "encoding/hex"
)

func GetMD5Hash(text string) string {
   hash := md5.Sum([]byte(text))
   return hex.EncodeToString(hash[:])
}

答案 4 :(得分:14)

我用它来MD5哈希我的字符串:

import (
    "crypto/md5"
    "encoding/hex"
)

func GetMD5Hash(text string) string {
    hasher := md5.New()
    hasher.Write([]byte(text))
    return hex.EncodeToString(hasher.Sum(nil))
}

答案 5 :(得分:2)

这是一个可用于生成MD5哈希的函数:

// MD5 hashes using md5 algorithm
func MD5(text string) string {
    algorithm := md5.New()
    algorithm.Write([]byte(text))
    return hex.EncodeToString(algorithm.Sum(nil))
}

我在这里整理了一组实用程序哈希函数:https://github.com/shomali11/util

您会发现FNV32FNV32aFNV64FNV65aMD5SHA1SHA256和{{ 1}}