代码语言:golang
所属分类:其他
代码描述:golang实现sm4加密解密示例代码
代码标签: golang sm4 加密 解密 示例 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
package main
import (
"fmt"
"github.com/tjfoc/gmsm/sm4"
)
func main() {
key := []byte("1234567890abcdef")
fmt.Printf("key = %v\n", key)
dataStr := "it 社区 bfw"
// 将字符串转换为字节切片
data := []byte(dataStr)
// 加密与解密 using ECB mode(电子密码本模式)
ecbMsg, err := sm4.Sm4Ecb(key, data, true)
if err != nil {
fmt.Errorf("sm4 加密错误: %s", err)
return
}
fmt.Printf("ecbMsg = %x\n", ecbMsg)
ecbDec, err := sm4.Sm4Ecb(key, ecbMsg, false)
if err != nil {
fmt.Errorf("sm4 解密错误: %s", err)
return
}
fmt.Printf("ecbDec = %s\n", ecbDec)
// 加密与解密 using CBC mode(密码分组链接模式)
iv := []byte("0000000000000000")
err = sm4.SetIV(iv)
if err != nil {
fmt.Printf("err = %v\n", err)
}
cbcMsg, err := sm4.Sm4Cbc(key, data, true)
if err != nil {
fmt.Errorf("sm4 加密错误: %s", err)
return
}
fmt.Printf("cbcMsg = %x\n", cbcMsg)
cbcDec, err := sm4.Sm4Cbc(key, cbcMsg, false)
if err != nil {
.........完整代码请登录后点击上方下载按钮下载查看