用golang写aes-256-cbc加解密
时间: 2023-05-15 07:06:31 浏览: 189
可以使用golang的crypto/aes和crypto/cipher包来实现aes-256-cbc加解密。以下是一个简单的示例代码:
```
package main
import (
"crypto/aes"
"crypto/cipher"
"fmt"
)
func main() {
key := []byte("0123456789abcdef0123456789abcdef")
iv := []byte("0123456789abcdef")
plaintext := []byte("hello world")
block, err := aes.NewCipher(key)
if err != nil {
panic(err)
}
ciphertext := make([]byte, len(plaintext))
mode := cipher.NewCBCEncrypter(block, iv)
mode.CryptBlocks(ciphertext, plaintext)
fmt.Printf("ciphertext: %x\n", ciphertext)
decrypted := make([]byte, len(ciphertext))
mode = cipher.NewCBCDecrypter(block, iv)
mode.CryptBlocks(decrypted, ciphertext)
fmt.Printf("decrypted: %s\n", decrypted)
}
```
在这个示例中,我们使用了一个256位的密钥和一个16字节的IV来加密一个字符串。我们首先创建一个AES加密块,然后使用CBC模式创建一个加密器,并使用它来加密我们的明文。我们打印出密文,然后使用相同的密钥和IV创建一个解密器,并使用它来解密密文。最后,我们打印出解密后的明文。
请注意,这只是一个简单的示例代码,实际使用中需要考虑更多的安全问题,比如密钥的生成和管理,IV的随机化等。
阅读全文