Go实现MD5加密的三种方法小结

第一种方法:md5.New() 和 Write

package main

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

func main() {
    str := "123456"
    data := []byte(str)
    md5New := md5.New()
    md5New.Write(data)
    // hex转字符串
    md5String := hex.EncodeToString(md5New.Sum(nil))
    fmt.Println(md5String)
    // e10adc3949ba59abbe56e057f20f883e
}

第二种方法:md5.New() 和 io.WriteString

package main

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

func main() {
    h := md5.New()
    io.WriteString(h, "123456")
    sum := h.Sum(nil)
    fmt.Println(hex.EncodeToString(sum[:]))
    // e10adc3949ba59abbe56e057f20f883e
}

第三种方法:md5.Sum

package main

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

func main() {
    data := []byte("123456")
    sum := md5.Sum(data)
    // hex转字符串
    md5String := hex.EncodeToString(sum[:])
    fmt.Println(md5String)
    // e10adc3949ba59abbe56e057f20f883e
    // 同
    fmt.Printf("%x", md5.Sum(data))
}

参考

https://syaning.github.io/go-pkgs/crypto/md5.html

http://doc.golang.ltd/pkg/crypto_md5.htm

原文地址:https://lilongsy.blog.csdn.net/article/details/128336617