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

这就是我从 string <开始获取 md5 </ code>哈希的方法 / code>:</ p>

  import“ crypto / md5” 

var original =“我的字符串来到这里”
var hash = md5.New(原始)
</ 代码> </ pre>

但是显然这不是它的工作方式。 有人可以为此提供工作示例吗?</ p>
</ div>

展开原文

原文

This is how I started to get a md5 hash from a string:

import "crypto/md5"

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

But obviously this is not how it works. Can someone provide me a working sample for this?

doumengyin0491
doumengyin0491 这个问题的最佳答案是在下面@AlexeiDanchenkov的评论中。我已经在此处的一个可快速运行的示例中实现了它们:play.golang.org/p/e7v_erP7Gc
4 年多之前 回复

6个回答



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

 包main 

import(
“ crypto / md5”
“ fmt”

func main(){
数据:= [] byte(“ hello”)
fmt.Printf(“%x”,md5.Sum(data))
}
</ code> </ pre>
</ div>

展开原文

原文

Reference Sum,For me,following work well:

package main

import (
    "crypto/md5"
    "fmt"
)

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



我发现此解决方案效果很好</ p>

  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)))
}
</ code> </ pre>
</ div>

展开原文

原文

I found this solution to work well

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)))
}



  import(
“ crypto / md5”
“ encoding / hex”

func GetMD5Hash( 文本字符串)字符串{
hash:= md5.Sum([] byte(text))
返回hex.EncodeToString(hash [:])
}
</ code> </ pre>
</ DIV>

展开原文

原文

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

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



我用它来对我的字符串进行MD5哈希处理:</ p>

  import(
“ crypto / md5“
” encoding / hex“

func GetMD5Hash(文本字符串)字符串{
hasher:= md5.New()
hasher.Write([] byte(text))
返回hex.EncodeToString(hasher.Sum(nil))
}
</ code> </ pre>
</ div>

展开原文

原文

I use this to MD5 hash my strings:

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

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



来自 crypto / md5 doc :</ p>

 程序包主要

import(
“ crypto / md5”
“ fmt”
“ io”

func main(){
h:= md5.New()
io.WriteString(h,“雾气越来越浓!”)
fmt.Printf(“%x”,h.Sum( nil))
}
</ code> </ pre>
</ div>

展开原文

原文

From 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))
}

dongshang1529
dongshang1529 好。 我想获取字符串,而不是将其打印到控制台O.o ...
大约 2 年之前 回复
drkug66408
drkug66408 作家io.WriteString()与主题无关。 fmt.Fprintf(h,“雾越来越浓!”)将产生相同的结果。 更清晰的将是单线fmt.Printf(“%x ”,md5.Sum([] byte(“快速的棕色狐狸跳过懒狗。”)))。 用任何in调用的h.Sum(in)会将h的md5-哈希值附加到in中-即将它们连接起来(请参阅源代码,第88行:golang.org/src/pkg/crypto/md5/md5.go?s= 2281:2313#L88)。
6 年多之前 回复
douyan1927
douyan1927 我看过本示例的文档,但您没有添加任何内容,例如说明。 为什么需要io.WriteString()? 为什么h.Sum()需要nil作为参数而不是采用给定的字符串? GoNoob读了一些模仿的例子,这是相当没有道理的。
6 年多之前 回复
drvjlec1767
drvjlec1767 看起来Hash.Sum()现在需要一个字节片作为第一个参数。 h.Sum([] byte {})将解决此示例。
8 年多之前 回复
dst8922
dst8922 strings.bytes在-release上不再存在,它是[] byte(原始)
10 年多之前 回复



以下是可用于生成MD5哈希的函数:</ p>

  /  /使用md5算法的MD5哈希
func MD5(文本字符串)字符串{
算法:= md5.New()
算法.Write([] byte(text))
返回hex.EncodeToString(algorithm.Sum(nil ))
}
</ code> </ pre>

我在此处整理了一组实用程序哈希函数: https://github.com/shomali11/util </ p>

您会找到 FNV32 </ code>, FNV32a </ code>, FNV64 </ code>, FNV65a </ code>, MD5 </ code>, SHA1 </ code>, SHA256 </ code>和 SHA512 </ code> </ p>
</ div>

展开原文

原文

Here is a function you could use to generate an MD5 hash:

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

I put together a group of those utility hash functions here: https://github.com/shomali11/util

You will find FNV32, FNV32a, FNV64, FNV65a, MD5, SHA1, SHA256 and SHA512

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐