Для подтверждения концепции я пытаюсь зашифровать сообщение с помощью 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.
Проблема возникает, когда я сохраняю publickey и перезапускаю этот скрипт на новой оболочке python:
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