Python中使用字符串形式RSA私钥解密失败,求解决方法
解决字符串RSA私钥解密的AttributeError问题
错误原因
PKCS1_OAEP.new() 要求传入RSA私钥对象,直接传入字符串私钥会触发 AttributeError,因为字符串没有RSA对象的n等核心属性。
解决方案步骤
1. 安装依赖库
确保已安装 pycryptodome(替代停止维护的 pycrypto):
pip install pycryptodome
2. 字符串私钥转RSA对象
使用 Crypto.PublicKey.RSA.import_key() 方法,将包含完整头尾(-----BEGIN RSA PRIVATE KEY-----/-----END RSA PRIVATE KEY-----)的字符串私钥,加载为合法的RSA私钥对象。
3. 匹配指定算法的解密实现
你指定的解密算法是 RSA/ECB/PKCS1Padding,对应PKCS#1 v1.5填充标准,需使用 PKCS1_v1_5 类(PKCS1_OAEP 对应OAEP填充,与需求不符)。
完整代码示例
from Crypto.PublicKey import RSA from Crypto.Cipher import PKCS1_v1_5 import base64 # 示例字符串格式的RSA私钥 private_key_str = """-----BEGIN RSA PRIVATE KEY----- MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5 1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh 3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2 pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX GukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il AkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF L0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ 37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0= -----END RSA PRIVATE KEY-----""" # Base64解码后的密文(替换为你的实际密文) s = base64.b64decode("你的Base64密文内容") # 1. 转换字符串私钥为RSA对象 private_key = RSA.import_key(private_key_str) # 2. 创建对应填充标准的解密器 cipher = PKCS1_v1_5.new(private_key) # 3. 执行解密,返回None表示密文无效或私钥不匹配 decrypted_data = cipher.decrypt(s, None) if decrypted_data: print("解密结果:", decrypted_data.decode('utf-8')) else: print("解密失败:密文无效或私钥不匹配")
额外注意事项
- 若私钥带密码保护,需在导入时传入密码参数:
private_key = RSA.import_key(private_key_str, passphrase="你的私钥密码") - 若加密端实际使用OAEP填充,可替换为
PKCS1_OAEP.new(private_key),但需确保加解密填充标准完全一致。
内容的提问来源于stack exchange,提问作者huntersang
相关产品推荐
相关产品推荐

