前言
提示:以下是本篇文章正文内容,下面案例可供参考
一、SM3是什么?
SM3是中华人民共和国政府采用的一种密码散列函数标准,由国家密码管理局于2010年12月17日发布。相关标准为“GM/T 0004-2012 《SM3密码杂凑算法》”。
在商用密码体系中,SM3主要用于数字签名及验证、消息认证码生成及验证、随机数生成等,其算法公开。据国家密码管理局表示,其安全性及效率与SHA-256相当。
二、go语言实现
package main
import (
"github.com/tjfoc/gmsm/sm3"
"fmt"
"encoding/hex"
)
func main13_1() {
hash := sm3.New()
hash.Write([]byte("wei"))
result := hash.Sum(nil)
fmt.Println(hex.EncodeToString(result))
fmt.Println("length = ", len(result)*8)
}
func main() {
result := sm3.Sm3Sum([]byte("wei"))
fmt.Println("length = ", len(result) * 8)
fmt.Println(hex.EncodeToString(result))
}