80

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

import "crypto/md5"

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

但显然这不是它的工作方式。有人可以为此提供一个工作样本吗?

4

7 回答 7

90

参考总和,对我来说,下面的工作很好:</p>

package main

import (
    "crypto/md5"
    "fmt"
)

func main() {
    data := []byte("hello")
    fmt.Printf("%x", md5.Sum(data))
}
于 2015-01-14T12:09:25.390 回答
88
import (
    "crypto/md5"
    "encoding/hex"
)

func GetMD5Hash(text string) string {
   hash := md5.Sum([]byte(text))
   return hex.EncodeToString(hash[:])
}
于 2014-08-13T12:59:35.023 回答
42

我发现这个解决方案效果很好

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)))
}
于 2013-11-12T23:00:13.660 回答
38

来自crypto/md5 文档

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))
}
于 2010-03-04T11:52:56.833 回答
17

我用它对我的字符串进行 MD5 哈希处理:

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

func GetMD5Hash(text string) string {
    hasher := md5.New()
    hasher.Write([]byte(text))
    return hex.EncodeToString(hasher.Sum(nil))
}
于 2014-01-08T18:23:44.770 回答
7

这是一个可用于生成 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

你会发现FNV32, FNV32a, FNV64, FNV65a, MD5, SHA1,SHA256SHA512

于 2017-11-12T00:33:11.737 回答
0

只是另一个答案

// MD5 hashes using md5 algorithm
func MD5(text string) string {
    data := []byte(text)
    return fmt.Sprintf("%x", md5.Sum(data))
}
于 2022-02-13T09:56:23.867 回答