Подтвердить что ты не робот

Как получить хеш MD5 из строки в Голанге?

Я только начинаю с Golang, и теперь я застреваю в создании MD5. Вот как я начал получать хэш md5 от string:

import "crypto/md5"

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

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

4b9b3361

Ответ 1

Ссылка Sum, для меня, после хорошей работы:

package main

import (
    "crypto/md5"
    "fmt"
)

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

Ответ 2

Из 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

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

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

Ответ 4

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

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

Ответ 5

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

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

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

Ответ 6

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