以下是使用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 解密模式,并使用初始向量对数据进行解密。最后,我们去掉填充数据,并输出解密结果。请注意,密钥和初始向量的长度必须符合要求。如果长度不正确,将会报错

golang aes256 cbc解密

原文地址: https://www.cveoy.top/t/topic/emOa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录