golang sm4
时间: 2023-07-26 07:22:24 浏览: 130
SM4是一种对称加密算法,也被称为SMS4。在Go语言中,可以使用crypto/sm4包来进行SM4加密和解密操作。以下是一个示例代码,演示了如何使用sm4包进行加密和解密操作:
```go
package main
import (
"crypto/cipher"
"crypto/sm4"
"encoding/hex"
"fmt"
)
func main() {
key, _ := hex.DecodeString("0123456789abcdeffedcba9876543210")
plaintext := []byte("Hello World")
block, err := sm4.NewCipher(key)
if err != nil {
panic(err)
}
ciphertext := make([]byte, len(plaintext))
block.Encrypt(ciphertext, plaintext)
fmt.Printf("Ciphertext: %x\n", ciphertext)
decrypted := make([]byte, len(ciphertext))
block.Decrypt(decrypted, ciphertext)
fmt.Printf("Plaintext: %s\n", decrypted)
}
```
在这个例子中,我们使用了一个16字节的密钥和一个明文字符串。首先,我们使用`sm4.NewCipher()`函数创建一个SM4加密块。然后,我们使用`block.Encrypt()`函数将明文加密,生成密文。最后,我们使用`block.Decrypt()`函数将密文解密,生成原始明文。
阅读全文