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

Python cryptography库报错:Fernet.decrypt()缺少必填参数'token'

解决Fernet.decrypt()缺少'token'参数的错误

你遇到的Fernet.decrypt() missing 1 required positional argument: 'token'错误,核心原因是直接调用了Fernet类的decrypt方法,而不是先实例化Fernet对象再调用实例方法。结合你的代码,还有两个关键问题需要修正:

  • 解密步骤中,Fernet.decrypt(encrypted)是错误的调用方式,必须用实例化后的Fernet对象来调用decrypt方法
  • 你重新从文件读取了密钥,但没有用这个密钥更新Fernet实例——如果加密时用的是保存到文件的密钥,那当前生成的新密钥和加密密钥不匹配,即使调用方式正确也会解密失败

以下是修正后的完整代码:

from cryptography.fernet import Fernet

# 读取加密时使用的密钥
with open("filekey.Key", 'rb') as filekey:
    key = filekey.read()

# 用读取到的密钥实例化Fernet对象
fernet = Fernet(key)

# 读取加密后的文件内容
with open("HHAYenc.csv", 'rb') as encrypted_file:
    encrypted = encrypted_file.read()

# 使用实例化对象执行解密
decrypted = fernet.decrypt(encrypted)

# 写入解密后的文件
with open("decHHAY.csv", 'wb') as decrypted_file:
    decrypted_file.write(decrypted)

额外说明:

  • 确保filekey.Key中的密钥和加密HHAYenc.csv时使用的密钥完全一致,这是解密成功的必要条件
  • 如果需要复用加密功能,建议把密钥生成、保存、读取的逻辑拆分,避免出现密钥不匹配的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 17:27:34