首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >" Fernet“python编码给出了以下错误: ValueError: Fernet键必须是32 url安全base64 64编码字节。

" Fernet“python编码给出了以下错误: ValueError: Fernet键必须是32 url安全base64 64编码字节。
EN

Stack Overflow用户
提问于 2022-06-17 18:37:17
回答 1查看 67关注 0票数 0

我有以下代码,它从.bin文件中获取加密密钥

代码语言:javascript
运行
复制
from cryptography.fernet import Fernet
    def C(i):
      f=open('/home/credentials.bin',"rb")
      e=f.read()
      e=e.split("\n")
      e2=e[-2]
      d = Fernet(e2)
      c = e[i]
      t = (d.decrypt(c))
      s= bytes(t).decode("utf-8")
      f.close()
      return str(s)
    
    print(C(0))

试图打印解密密钥会导致以下错误:

代码语言:javascript
运行
复制
"Fernet key must be 32 url-safe base64-encoded bytes."

ValueError: Fernet键必须是32 url安全的base64 64编码字节。

credentials.bin大陆

"gAAAAABeTAKV_odfhx3i6BhiaXeEDdxvG3eDdployKspvIcnm87zXd94fklNm1mMVkTlN6UUehyw0VzgNU1mj0Zlzi6yNynmOA=="

`

我感谢你的帮助

EN

Stack Overflow用户

回答已采纳

发布于 2022-06-17 20:25:50

您的密钥对于Fernet键来说太长了:是:

代码语言:javascript
运行
复制
len("gAAAAABeTAKV_odfhx3i6BhiaXeEDdxvG3eDdployKspvIcnm87zXd94fklNm1mMVkTlN6UUehyw0VzgNU1mj0Zlzi6yNynmOA==")

产出:

代码语言:javascript
运行
复制
100

而铁键是:

代码语言:javascript
运行
复制
len(Fernet.generate_key())

产出:

代码语言:javascript
运行
复制
44

它与你的钥匙的唯一工作方式是如果你切断了第一部分,但我很肯定这是,而不是,它的意图。

代码语言:javascript
运行
复制
Fernet("gAAAAABeTAKV_odfhx3i6BhiaXeEDdxvG3eDdployKspvIcnm87zXd94fklNm1mMVkTlN6UUehyw0VzgNU1mj0Zlzi6yNynmOA=="[-45:-1])

产出:

代码语言:javascript
运行
复制
<cryptography.fernet.Fernet object at 0x7feb65b5bf10>

我想你这里的钥匙错了,或者不是费内特的钥匙。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72663513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档