Python 解密RSA会话密钥的正确方法

Python 解密RSA会话密钥的正确方法,python,encryption,rsa,pycrypto,pycryptodome,Python,Encryption,Rsa,Pycrypto,Pycryptodome,我正在使用pycryptodomex进行RSA加密和解密。 它显示以下错误 ValueError回溯(最近的调用 最后)在 11#使用RSA公钥解密会话密钥 12密码\u rsa=PKCS1\u OAEP.new(私钥) --->13会话密钥=密码rsa.解密(加密会话密钥) 14 15#使用AES会话密钥解密数据 C:\ProgramData\Anaconda3\lib\site packages\Cryptodome\Cipher\PKCS1\u OAEP.py 解密中(自身、密文) 16

我正在使用pycryptodomex进行RSA加密和解密。

它显示以下错误

ValueError回溯(最近的调用 最后)在 11#使用RSA公钥解密会话密钥 12密码\u rsa=PKCS1\u OAEP.new(私钥) --->13会话密钥=密码rsa.解密(加密会话密钥) 14 15#使用AES会话密钥解密数据

C:\ProgramData\Anaconda3\lib\site packages\Cryptodome\Cipher\PKCS1\u OAEP.py 解密中(自身、密文) 165#步骤1b和1c 166如果len(密文)!=k或k 167提升值错误(“长度不正确的密文”) 168#步骤2a(O2SIP) 169 ct_int=字节到字节长(密文)

ValueError:长度不正确的密文


代码有问题吗

请阅读关于使用PKCS进行加密/解密的文档,您看到的错误在这里。输入或输入/键组合更有可能出现问题。顺便说一句,请修改您在复制时的评论:“使用公钥RSA解密会话密钥”。是什么让您认为您拥有正确的私钥?我遵循了我在问题中指定的文章。它需要删除填充还是进行文本转换?您知道加密过程中使用的填充吗?
from Cryptodome.PublicKey import RSA
from Cryptodome.Cipher import AES, PKCS1_OAEP

file_in = open("encrypted_data.bin", "rb")

private_key = RSA.import_key(open("private.pem").read())

enc_session_key, nonce, tag, ciphertext = \
   [ file_in.read(x) for x in (private_key.size_in_bytes(), 16, 16, -1) ]

# Decrypt the session key with the public RSA key
cipher_rsa = PKCS1_OAEP.new(private_key)
session_key = cipher_rsa.decrypt(enc_session_key)

# Decrypt the data with the AES session key
cipher_aes = AES.new(session_key, AES.MODE_EAX, nonce)
data = cipher.decrypt_and_verify(ciphertext, tag)