首页 > 解决方案 > 模块“Crypto.PublicKey.RSA”没有属性“import_key”

问题描述

我有一个 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)

标签: pythonpycrypto

解决方案


你是最近安装的吗?我们刚刚注意到我们昨天构建的 Raspberry Pi 设备存在问题。在 /usr/local/lib/python3.5/dist-packages/Crypto/PublicKey 文件夹中,许多文件(包括 RSA.py)是空的。几分钟前我们刚刚卸载并重新安装了 pycryptodome,文件不再是空的。


推荐阅读