golang aes256 cbc解密
以下是使用Golang进行AES256 CBC解密的示例代码:
package main
import (
"crypto/aes"
"crypto/cipher"
"encoding/base64"
"fmt"
)
func main() {
// 待解密的密文
ciphertext := "Z3JvdXBnZWVrcmFja2VyZ3JvdXBnZWVrcmFja2Vy"
// 密钥,长度必须是 16、24 或 32 字节
key := []byte("0123456789abcdef0123456789abcdef")
// 初始化向量,长度必须是 16 字节
iv := []byte("0123456789abcdef")
// 对密文进行 Base64 解码
data, err := base64.StdEncoding.DecodeString(ciphertext)
if err != nil {
panic(err)
}
// 创建 AES 解密器
block, err := aes.NewCipher(key)
if err != nil {
panic(err)
}
// 创建 CBC 解密模式,需要提供初始向量
mode := cipher.NewCBCDecrypter(block, iv)
// 解密数据
mode.CryptBlocks(data, data)
// 去掉填充数据
padding := data[len(data)-1]
data = data[:len(data)-int(padding)]
// 输出解密结果
fmt.Println(string(data))
}
在上面的代码中,我们首先对密文进行 Base64 解码,然后创建 AES 解密器和 CBC 解密模式,并使用初始向量对数据进行解密。最后,我们去掉填充数据,并输出解密结果。请注意,密钥和初始向量的长度必须符合要求。如果长度不正确,将会报错
原文地址: https://www.cveoy.top/t/topic/emOa 著作权归作者所有。请勿转载和采集!