Если вы действительно хотите это сделать (генерировать и хранить личные ключи централизованно), см. эти инструкции - соответствующий фрагмент кода ниже для справки:
>>> from Crypto.PublicKey import RSA
>>> from Crypto import Random
>>> random_generator = Random.new().read
>>> private_key = RSA.generate(1024, random_generator)
>>> public_key = private_key.publickey()
>>> enc_data = public_key.encrypt('abcdefgh', 32)
>>> private_key.decrypt(enc_data)
'abcdefgh'
Однако, имейте в виду, что , если я не ошибаюсь относительно цели вашего приложения , это небезопасный способ сделать это .
Я предполагаю, что Reader
на самом деле не находится в той же системе, что и Writer
- если они есть, я не вижу никакой причины, почему бы использовать PKI
(асимметричное шифрование) в любомслучай, когда достаточно простого симметричного шифрования AES.
Если мое предположение верно, Reader
должен генерировать закрытый ключ, как описано выше, и только передает открытый ключ Writer
и импортируйте ключ , используя RSA.importKey
- к сожалению, вам нужно pyCrypto >= 2.1
для этого