golang实现sm4加密解密示例代码

代码语言: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 {
		.........完整代码请登录后点击上方下载按钮下载查看

网友评论0