在 Golang 中,我们要计算一个字符串的 MD5 值,只需要使用内置的 md5 包即可。
package main
import (
"crypto/md5"
"encoding/hex"
"fmt"
)
func strMd5(str string) (retMd5 string) {
h := md5.New()
h.Write([]byte(str))
return hex.EncodeToString(h.Sum(nil))
}
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
var str1 = "haicoder.net"
retMd5 := strMd5(str1)
fmt.Println("Md5 =", retMd5)
}
此时,我们运行程序,控制台输出如下:
我们直接使用了 md5 包里面的函数进行对字符串进行 md5 的计算,并以字符串的形式返回计算好的 md5 值。
package main
import (
"crypto/md5"
"fmt"
)
func strMd5(str string) (retMd5 string) {
data := []byte(str)
has := md5.Sum(data)
md5str := fmt.Sprintf("%x", has)
return md5str
}
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
var str1 = "haicoder.net"
retMd5 := strMd5(str1)
fmt.Println("Md5 =", retMd5)
}
此时,我们运行程序,控制台输出如下:
我们看到,同样实现了计算 md5 的值。
package main
import (
"crypto/md5"
"fmt"
"io"
)
func strMd5(str string) (retMd5 string) {
w := md5.New()
io.WriteString(w, str)
md5str := fmt.Sprintf("%x", w.Sum(nil))
return md5str
}
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
var str1 = "haicoder.net"
retMd5 := strMd5(str1)
fmt.Println("Md5 =", retMd5)
}
此时,我们运行程序,控制台输出如下:
同样实现了计算 md5 的值。