Pycrypto教科书RSA,无填充

时间:2019-02-20 06:48:27

标签: python-3.x rsa pycrypto

为证明概念,我尝试使用RSA加密消息而不填充。这意味着每个加密的消息都具有相同的加密,但是当我使用pycrypto时,我实际上看到了这种情况:

from Crypto import Random
from Crypto.PublicKey import RSA

privatekey = RSA.generate(256*4, Random.new().read)
publickey = privatekey.publickey()
message = "hello stackexchange"
encrypt1 = key.encrypt(message.encode("utf-8"),32)
encrypt2 = key.encrypt(message.encode("utf-8"),32)
encrypt3 = key.encrypt(message.encode("utf-8"),32)
encrypt4 = key.encrypt(message.encode("utf-8"),32)

当我通过encription1 == enciption2比较这些记录时,我得到True。

当我保存公钥并在新的python shell上重新运行此脚本时,会发生问题:

message = "hello stackexchange"
encrypt11 = key.encrypt(message.encode("utf-8"),32)
encrypt22 = key.encrypt(message.encode("utf-8"),32)
encrypt33 = key.encrypt(message.encode("utf-8"),32)
encrypt44 = key.encrypt(message.encode("utf-8"),32)

很明显

encrypt11==encrypt22.

但是以某种方式

encrypt1!=encrypt11

文档告诉我,此方法不进行任何填充,所以我现在很困惑。

关于如何制作密钥以使加密方法始终提供相同加密的任何提示吗?

文档:https://www.dlitz.net/software/pycrypto/api/current/Crypto.PublicKey.RSA._RSAobj-class.html

0 个答案:

没有答案