首页 > 解决方案 > fernet 密钥错误“Fernet 密钥必须是 32 个 url 安全的 base64 编码字节”

问题描述

我不断收到此错误,但找不到任何有用的信息。我没有将其存储在文件中,而是将其存储在解密代码中,以便在编译后没有人可以看到它(如果有更好的存储密钥的方法,请告诉我)。

这是错误

get_data = ast.literal_eval(Fernet(Key).decrypt((Message).encode('utf-8')).decode('utf-8'))
  File "C:\Program Files\Python37\lib\site-packages\cryptography\fernet.py", line 38, in __init__
    "Fernet key must be 32 url-safe base64-encoded bytes."
ValueError: Fernet key must be 32 url-safe base64-encoded bytes.

这是我的代码部分

Key = b'pT8ZDjwCvnWkfPEYBm12q2p9srNkM-nWC6Ss9aAcMEw='

我使代码更容易阅读

message_to_decrypt = (message_to_decrypt).encode('utf-8')
ast.literal_eval(Fernet(Key).decrypt(message_to_decrypt ).decode('utf-8'))

标签: pythonbytefernet

解决方案


尝试这个

import base64

key = b'pT8ZDjwCvnWkfPEYBm12q2p9srNkM-nWC6Ss9aAcMEw='

key = base64.urlsafe_b64encode(key)

如果这不起作用,请提供给您错误的示例代码


推荐阅读