Как получить хеш MD5 из строки в Golang? - PullRequest
41 голосов
/ 04 марта 2010

Вот как я начал получать хэш md5 от string:

import "crypto/md5"

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

Но очевидно, что это не так. Может ли кто-нибудь предоставить мне рабочий образец для этого?

Ответы [ 6 ]

37 голосов
/ 14 января 2015

Ссылка Сумма , Для меня , следующая работа хорошо:

package main

import (
    "crypto/md5"
    "fmt"
)

func main() {
    data := []byte("hello")
    fmt.Printf("%x", md5.Sum(data))
}
35 голосов
/ 13 ноября 2013

Я нашел, что это решение хорошо работает

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)))
}
34 голосов
/ 04 марта 2010

С 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))
}
23 голосов
/ 13 августа 2014
import (
    "crypto/md5"
    "encoding/hex"
)

func GetMD5Hash(text string) string {
   hash := md5.Sum([]byte(text))
   return hex.EncodeToString(hash[:])
}
14 голосов
/ 08 января 2014

Я использую это для MD5 хэширования моих строк:

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

func GetMD5Hash(text string) string {
    hasher := md5.New()
    hasher.Write([]byte(text))
    return hex.EncodeToString(hasher.Sum(nil))
}
2 голосов
/ 12 ноября 2017

Вот функция, которую вы можете использовать для генерации хеша 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, SHA256 и SHA512

...