Python ValueError:长度不正确的密文

Python ValueError:长度不正确的密文,python,rsa,pycryptodome,Python,Rsa,Pycryptodome,我的问题是: “假设您的RSA公钥因子为p=6323和q=2833,并且 公共指数e为31。假设您收到密文6627708。编写一个程序,将上述参数作为输入,并实现RSA解密函数以恢复明文。” 尝试解密密文时,我收到错误: --------------------------------------------------------------------------- ValueError Traceback (most recen

我的问题是: “假设您的RSA公钥因子为p=6323和q=2833,并且 公共指数e为31。假设您收到密文6627708。编写一个程序,将上述参数作为输入,并实现RSA解密函数以恢复明文。”

尝试解密密文时,我收到错误:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-30-bb484f24f99a> in <module>
----> 1 cipher.decrypt((str(ciphertext)))

/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/Crypto/Cipher/PKCS1_OAEP.py in decrypt(self, ciphertext)
    165         # Step 1b and 1c
    166         if len(ciphertext) != k or k<hLen+2:
--> 167             raise ValueError("Ciphertext with incorrect length.")
    168         # Step 2a (O2SIP)
    169         ct_int = bytes_to_long(ciphertext)

ValueError: Ciphertext with incorrect length.

我想知道的更多,所以我是否在正确的轨道上,或完全脱离轨道。我不太确定如何修正长度错误。我在想也许我需要像在AES中一样使用pad,但我不太确定。提前感谢您的帮助

如果您有
c
d
n
,则可以使用获取密文:

>>> pow(ciphertext, d, n)
205
这似乎是一个格式错误的消息(它们通常是十六进制或ASCII值),因此这可能只是一个示例问题

您的问题源于of,其中指出:

C:要解密的密文,长度为k的八位字节字符串,其中k=2hLen+2

其中:

hLen表示哈希函数输出的长度(以八位字节为单位)


因此,从技术上讲,您的密文太短,RSA无法解密。

嘿,谢谢您的帮助。这只是一个简单的整数,我们想尝试使用RSA来解密,你知道这个错误或者如何修复它吗?@Dylaloo问题是因为其中一个FIP或RFC(我不记得是哪个)pycryptodome按照字母顺序。请参阅我的答案,了解如何解密您的密文几乎可以肯定您的明文没有填充,我怀疑您的讲师希望或期望您使用任何RSA库。
>>> pow(ciphertext, d, n)
205