go 调用 sha256 加密
package main
import (
"crypto/sha256"
"encoding/hex"
"fmt"
"os"
"io"
)
func main() {
//sha256加密
//第一种
sha:=sha256.New()
sha.Write([]byte("hello world"))
str := hex.EncodeToString(sha.Sum(nil))
fmt.Println(str)
//第二种
var sha01 = sha256.Sum256([]byte("hello world"))
fmt.Printf("%x \n",sha01)
//文件hash值
f,_ :=os.Open("test")
defer f.Close()
h := sha256.New()
io.Copy(h,f)
fmt.Printf("%x",h.Sum(nil))
}
sha256 实现原理
SHA-256 算法输入报文的最大长度不超过2^64 bit,输入按512-bit 分组进行处理,产生的输出是一个256-bit 的报文摘要。
附加填充比特:对报文进行填充使报文长