Pycrypto учебник RSA без дополнения - PullRequest
0 голосов
/ 20 февраля 2019

Для подтверждения концепции я пытаюсь зашифровать сообщение с помощью 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

...