使用python中的aes使用.cer文件加密文本

时间:2018-03-12 22:42:06

标签: python python-3.x certificate aes

我有一个.cer文件。从其他StackOverflow链接我可以看到如何使用aes,但它们都提到了一个16字节的密钥。我怎样才能使用.cer文件?

编辑: 我跑了openssl x509 -inform der -pubkey -noout -in certificate_name.cer >public_key.pem来获取公钥。如何使用它?

我试过了:

from Crypto.Cipher import AES
from Crypto import Random
key = open('public_key.pem', 'r').read()
mode = AES.MODE_CBC
IV = Random.OSRNG.posix.new().read(AES.block_size)
AES.new(key, mode, IV=IV)

但这会引发ValueError: AES key must be either 16, 24, or 32 bytes long错误

1 个答案:

答案 0 :(得分:2)

.cer文件是包含公钥/私钥对和一些证书元数据的证书文件。公钥/私钥对用于非对称加密。

AES是一种对称加密算法。 .cer文件只与AES相关,因为它们都属于密码学的广泛主题,但.cer不能直接用作AES的密钥。

我认为你应该在更高层次上解决你想要做的事情,因为如果你试图使用.cer文件作为密钥使用AES加密某些东西,那么就会出现一些基本的误解(加密技术绝对不是只是混乱它的地方,直到看起来有效)