Модуль «Crypto.PublicKey.RSA» не имеет атрибута «import_key» - PullRequest
0 голосов
/ 02 октября 2019

У меня есть приложение C #, которое использует следующие открытые ключи для успешного шифрования и дешифрования (используя соответствующий закрытый ключ). Я использую тот же открытый ключ в Python для шифрования, используя следующий код. Я получаю следующую ошибку:

модуль «Crypto.PublicKey.RSA» не имеет атрибута «import_key»

Я ссылался RSA - pycryptodome.readthedocs.io чтобы проверить 'import_key'. Там написано extern_key (string or byte string).

Примечание: у меня установлена ​​pycrypto 2.6.1. Проверено с использованием conda list.

Как это исправить, чтобы Python мог использовать тот же ключ, который был успешно использован приложением C #?

Код Python

import Crypto
from Crypto.PublicKey import RSA
pubkey = 'BgIAAACkAABSU0ExAAQAAAEAAQB5ad3IFUIQ+NJeJEVlHJb0BaXhPCpeP+477ql+2dsNLzpn+3f2Lm5UWZhig60rx7/5/rAlAH+emU6WwOZNxtMtFbdu9CNBUjRp9FiEmJHZLaGqqmEFDyp287k3HVCFVzxxRAEy8ftL/q6KaE3KKrHoFiMozretUXulYy5OE1yR7w=='

import base64
decodedPublicKey = base64.b64decode(pubkey)
pub_key = RSA.import_key(decodedPublicKey)
encrypted = pub_key.encrypt('hello world', None)
print(encrypted)
text = pvt_key.decrypt(encrypted)
print(text)

1 Ответ

0 голосов
/ 02 октября 2019

Вы устанавливали его недавно? Мы только что заметили проблему с устройствами Raspberry Pi, которые мы создали вчера. В папке /usr/local/lib/python3.5/dist-packages/Crypto/PublicKey многие файлы (включая RSA.py) были пусты. Мы просто удалили и переустановили pycryptodome несколько минут назад, и файлы больше не пусты.

...