как зашифровать одноразовый пароль с помощью открытого ключа и снова восстановить его с помощью личного ключа пользователя, мне нужно сделать это с помощью Python
Вы можете использовать библиотеку шифрования Python под названием PyCrypto (www.pycrypto.org). Вот некоторый обзор шифрования с открытым ключом с использованием PyCrypto: http://www.dlitz.net/software/pycrypto/doc/#crypto-publickey-public-key-algorithms
Используйте библиотеку шифрования, например pyopenssl, которая выглядит более современной, чем pycrypto.
pyopenssl
pycrypto
pyopenssl - довольно тонкая оболочка (подмножество) OpenSSL библиотека. С тонкой оберткой я имею в виду, что многие методы объекта делают не что иное, как вызов соответствующей функции в OpenSSL библиотека.