下面是使用golang进行AES-256 CBC解密的示例代码,其中IV为16个0字节:

package main

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

func main() {
    key := []byte("12345678901234567890123456789012") // 32 bytes key
    iv := make([]byte, aes.BlockSize)                // 16 bytes IV
    cipherText, _ := base64.StdEncoding.DecodeString("TnOcHrTnT+7u9tfMw0rRJg==") // base64 encoded ciphertext

    block, err := aes.NewCipher(key)
    if err != nil {
        panic(err)
    }

    mode := cipher.NewCBCDecrypter(block, iv)

    mode.CryptBlocks(cipherText, cipherText)

    fmt.Println(string(cipherText))
}

解释:

  1. 我们首先定义了一个32字节的密钥和一个16字节的全零IV。
  2. 然后,我们使用base64.StdEncoding.DecodeString函数将密文字符串解码为字节数组。
  3. 接下来,我们使用aes.NewCipher函数创建一个AES块加密器。
  4. 然后,我们使用cipher.NewCBCDecrypter函数创建一个CBC模式的解密器。
  5. 最后,我们使用mode.CryptBlocks函数对密文进行解密,并将解密后的明文输出到控制台上。

注意:在实际使用中,请勿将密钥和IV硬编码在代码中。最好将它们存储在安全的地方,并通过安全的方式传递给解密函数

golang写一段 AES-256 CBC 解密代码 IV为16个0字节

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

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