以下是使用golang进行AES-256-CBC解密的示例代码:

package main

import (
    "crypto/aes"
    "crypto/cipher"
    "encoding/base64"
    "fmt"
)

func main() {
    // 加密数据
    encryptedData := "U2FsdGVkX1/GlQkz/0y8Mym8r9zLwMgI2+qS6mX3S7s="
    // 密钥
    key := "12345678901234567890123456789012"
    // 初始化向量
    iv := "1234567890123456"

    // 对密钥和向量进行补位
    if len(key) < 32 {
        key = fmt.Sprintf("%-32s", key)
    }
    if len(iv) < 16 {
        iv = fmt.Sprintf("%-16s", iv)
    }

    // Base64解码加密数据
    cipherData, err := base64.StdEncoding.DecodeString(encryptedData)
    if err != nil {
        panic(err)
    }

    // 创建AES解密器
    block, err := aes.NewCipher([]byte(key))
    if err != nil {
        panic(err)
    }

    // 创建解密器
    decrypter := cipher.NewCBCDecrypter(block, []byte(iv))

    // 执行解密
    decryptedData := make([]byte, len(cipherData))
    decrypter.CryptBlocks(decryptedData, cipherData)

    // 去除补位
    decryptedData = bytes.Trim(decryptedData, "\x00")

    // 输出解密结果
    fmt.Println(string(decryptedData))
}

在上面的示例代码中,我们首先定义加密数据、密钥和初始化向量。然后,我们对密钥和向量进行补位,以确保它们的长度符合要求。

接下来,我们使用Base64解码加密数据,并创建AES解密器。然后,我们创建解密器,执行解密操作并去除补位。

最后,我们输出解密结果

golang aes256cbc解密

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

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