You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python保存加载RSA密钥时blinded_decrypt参数缺失报错如何解决

错误原因

你报错的核心问题是没有实例化rsa的密钥类,直接操作类对象而非实例对象:

# 你写的是把类本身放到元组里,没有创建实例
loadkedkeys = (rsa.key.PublicKey, rsa.key.PrivateKey)

这段代码里你存的是PublicKey、PrivateKey两个类本身,不是类的实例对象。调用类方法的时候Python会默认把实例作为第一个self参数传入,你直接用类调用方法,就会把你传的加密数据参数当成self,自然就报参数缺失的错误。

修复方案

把加载密钥的部分改成实例化密钥类即可,PublicKey类实例化需要传入n和e两个参数,PrivateKey类实例化需要传入n、e、d、p、q五个参数,正好对应你JSON里存的字段,不需要单独给属性赋值:

# 把原来赋值密钥属性的整段代码替换成下面的内容
pub_key = rsa.key.PublicKey(keys["keys"][0][1], keys["keys"][0][0])
priv_key = rsa.key.PrivateKey(
    keys["keys"][1][1], 
    keys["keys"][1][0], 
    keys["keys"][1][2], 
    keys["keys"][1][3], 
    keys["keys"][1][4]
)
loadkedkeys = (pub_key, priv_key)

可优化点

  1. 操作文件的时候建议用with语法,会自动关闭文件,避免忘记close导致的资源泄漏
  2. 存密钥的时候JSON结构可以写的更清晰,不用嵌套数组,直接给每个字段起名字,后续维护更方便
  3. 你解密的时候变量逻辑有问题,前面把密文读出来存到text变量里,但是解密还是用的原来的cyphertext变量,虽然现在不影响运行,后面如果要改读取密文逻辑容易出问题

内容的提问来源于stack exchange,提问作者a door

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 22:45:00