golang aes128解密
以下是使用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()函数进行解密操作,得到明文
原文地址: https://www.cveoy.top/t/topic/emFo 著作权归作者所有。请勿转载和采集!