闽公网安备 35020302035485号
package main
import (
"crypto/md5"
"encoding/hex"
"fmt"
"io"
"strings"
)
// 堆代码 duidaima.com
func main() {
h := md5.New()
io.WriteString(h, "md5 加密测试!")
fmt.Printf("%x\n", h.Sum(nil))
fmt.Printf("%X\n", h.Sum(nil)) // 大写的 X,代表大写的十六进制字符串
hh := md5.New()
hh.Write([]byte("md5 加密测试!"))
fmt.Print(hex.EncodeToString(hh.Sum(nil)) + "\n")
fmt.Print(strings.ToTitle(hex.EncodeToString(hh.Sum(nil)))) // strings.ToTitle() 转大写
}
二、sha256 字符串、文件加密package main
import (
"crypto/sha256"
"encoding/hex"
"fmt"
"io"
"log"
"os"
"strings"
)
func main() {
// 对字符串加密,方式一
h: = sha256.New()
h.Write([] byte("sha256 加密测试!"))
fmt.Printf("%x\n", h.Sum(nil))
fmt.Printf("%X\n", h.Sum(nil)) // 大写的 X,代表大写的十六进制字符串
// 对字符串加密,方式二
hh: = sha256.New()
hh.Write([] byte("sha256 加密测试!"))
fmt.Print(hex.EncodeToString(hh.Sum(nil)) + "\n")
fmt.Print(strings.ToTitle(hex.EncodeToString(hh.Sum(nil))) + "\n")
// 对文件进行加密
f,
err: = os.Open("file.txt")
if err != nil {
log.Fatal(err)
}
defer f.Close()
h2: = sha256.New()
if _,
err: = io.Copy(h2, f);err != nil {
log.Fatal(err)
}
fmt.Printf("%x\n", h2.Sum(nil))
fmt.Printf("%X", h2.Sum(nil))
}
总结:
以上就是Go语言基于crypto 库实现的MD5加密和sha256 加密方式,希望对大家有所帮助。