Ответ 1
Ссылка Sum, для меня, после хорошей работы:
package main
import (
"crypto/md5"
"fmt"
)
func main() {
data := []byte("hello")
fmt.Printf("%x", md5.Sum(data))
}
Я только начинаю с Golang, и теперь я застреваю в создании MD5. Вот как я начал получать хэш md5
от string
:
import "crypto/md5"
var original = "my string comes here"
var hash = md5.New(original)
Но, очевидно, это не так, как это работает. Может ли кто-нибудь предоставить мне рабочий образец для этого?
Ссылка Sum, для меня, после хорошей работы:
package main
import (
"crypto/md5"
"fmt"
)
func main() {
data := []byte("hello")
fmt.Printf("%x", md5.Sum(data))
}
Из 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))
}
Я нашел, что это решение хорошо работает
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(text string) string {
hash := md5.Sum([]byte(text))
return hex.EncodeToString(hash[:])
}
Я использую это для MD5 хэш-строк:
import (
"crypto/md5"
"encoding/hex"
)
func GetMD5Hash(text string) string {
hasher := md5.New()
hasher.Write([]byte(text))
return hex.EncodeToString(hasher.Sum(nil))
}
Вот функция, которую вы можете использовать для генерации хеша 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