以下是使用golang进行AES128解密的示例代码:

package main

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

func main() {
    key := []byte("0123456789abcdef")    // 16字节的密钥
    iv := []byte("1234567890abcdef")     // 16字节的初始向量
    ciphertext, _ := base64.StdEncoding.DecodeString("mz9OO8iXvKzT4mJ1uYqWrQ==") // 待解密的密文

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

    mode := cipher.NewCBCDecrypter(block, iv)
    plaintext := make([]byte, len(ciphertext))
    mode.CryptBlocks(plaintext, ciphertext)

    fmt.Printf("解密后的明文:%s\n", plaintext)
}

在上面的代码中,我们使用了crypto/aes和crypto/cipher两个包提供的API来完成AES128解密。关键点如下:

  • 密钥和初始向量的长度都必须是16字节(128位)。
  • 通过调用aes.NewCipher()函数创建一个AES加密算法的实例。
  • 通过调用cipher.NewCBCDecrypter()函数创建一个CBC模式的解密器。
  • 最后,调用mode.CryptBlocks()函数进行解密操作,得到明文
golang aes128解密

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

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