Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中使用aes使用.cer文件加密文本_Python_Python 3.x_Certificate_Aes - Fatal编程技术网

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

在python中使用aes使用.cer文件加密文本,python,python-3.x,certificate,aes,Python,Python 3.x,Certificate,Aes,我随身带着一个.cer文件。从其他StackOverflow链接中,我可以看到aes是如何使用的,但它们都提到了一个16字节的密钥。如何使用.cer文件进行相同的操作 编辑: 我在certificate\u name.cer>public\u key.pem中运行了opensslx509-notify der-pubkey-noout-in-certificate\u name.cer>来获取公钥。这个怎么用 我试过: from Crypto.Cipher import AES from Cry

我随身带着一个.cer文件。从其他StackOverflow链接中,我可以看到aes是如何使用的,但它们都提到了一个16字节的密钥。如何使用.cer文件进行相同的操作

编辑: 我在certificate\u name.cer>public\u key.pem中运行了
opensslx509-notify der-pubkey-noout-in-certificate\u name.cer>来获取公钥。这个怎么用

我试过:

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)

但这会抛出一个
值错误:AES密钥必须是16、24或32字节长的
错误

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

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


我认为您应该在更高的层次上解决您正在尝试做的事情,因为如果您试图使用.cer文件作为密钥使用AES加密某些内容,就会出现一些根本性的误解(而且在它看起来起作用之前,加密绝对不是一个乱弄它的地方)

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

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


我认为您应该在更高的层次上解决您正在尝试做的事情,因为如果您试图使用.cer文件作为密钥使用AES加密某些内容,则会出现一些根本性的误解(在它似乎起作用之前,加密绝对不是一个处理它的地方)

感谢您查看此@user411133。我在certificate\u name.cer>public\u key.pem
中运行了
opensslx509-notify der-pubkey-noout-in-certificate\u name.cer>来获取公钥。这能用吗?@Projjol No.不对称和对称是完全不同的。非对称加密有单独的加密和解密密钥,速度非常慢,密钥大小一般大于1024位。并且它可以加密的数据大小被限制为小于密钥大小。对称加密有一个密钥用于加密和解密,速度非常快,密钥大小一般为128或256位。而且它可以加密的数据大小是无限的。你需要做的是1。研究加密和2。在问题中添加您试图完成的任务的描述。感谢您查看此@user411133。我在certificate\u name.cer>public\u key.pem
中运行了
opensslx509-notify der-pubkey-noout-in-certificate\u name.cer>来获取公钥。这能用吗?@Projjol No.不对称和对称是完全不同的。非对称加密有单独的加密和解密密钥,速度非常慢,密钥大小一般大于1024位。并且它可以加密的数据大小被限制为小于密钥大小。对称加密有一个密钥用于加密和解密,速度非常快,密钥大小一般为128或256位。而且它可以加密的数据大小是无限的。你需要做的是1。研究加密和2。在问题中添加您试图完成的任务的描述。