package main
import (
"bytes"
"fmt"
"crypto/md5"
"encoding/hex"
)
func main() {
str := "something"
str2 := "nanalihai"
buf := bytes.NewBufferString(str)
buf.Write([]byte(str2))
fmt.Println(buf.String()) //输出拼接两个字符串的结果
//golang中字符串MD5生成方式
h := md5.New()
h.Write([]byte(buf.String())) // 需要加密的字符串为buf.String()
fmt.Printf("%s\n", hex.EncodeToString(h.Sum(nil))) // 输出加密结果
}
方案一
func md5V(str string)string{
h := md5.New()
h.Write([]byte(str))
return hex.EncodeToString(h.Sum(nil))
}
方案二
func md5V2(str string) string{
data := []byte(str)
has := md5.Sum(data)
md5str := fmt.Sprintf("%x", has)
return md5str
}
方案三
func md5V3(str string)string{
w := md5.New()
io.WriteString(w, str)
md5str := fmt.Sprintf("%x", w.Sum(nil))
return md5str
}
整体测试代码
package main
import(
"crypto/md5"
"encoding/hex"
"fmt"
"io")
func main(){
str :="MD5testing"
md5Str := md5V(str)
fmt.Println(md5Str)
fmt.Println(md5V2(str))
fmt.Println(md5V3(str))
}// 输出结果:
f7bb96d1dcd6cfe0e5ce1f03e35f84bf
f7bb96d1dcd6cfe0e5ce1f03e35f84bf
f7bb96d1dcd6cfe0e5ce1f03e35f84bf
有疑问加站长微信联系(非本文作者)