【发布时间】:2017-05-11 14:09:47
【问题描述】:
我生成了一些 fernet 密钥并以 str 格式存储以供参考。 现在,我需要将这些 fernet 密钥以 str 格式编码为 32 个 url 安全的 base64 编码字节来解密我的数据。
from cryptography.fernet import Fernet as frt
keys=set()
keybin='keys'
keybin=open(keybin,'w')
for i in range(r.randint(5,14)):
key=frt.generate_key()
keys.add(key.decode())
for k in keys:
keybin.write(str(k))
keybin.write('\n')
我正在使用下面的代码来访问文件并解密s
key=linecache.getline(cfile,x).encode()
key=base64.b64encode(key)
print(key)
f=frt(key)
token =f.decrypt(s.encode())
但是给了我以下错误:
"Fernet key must be 32 url-safe base64-encoded bytes."
ValueError: Fernet key must be 32 url-safe base64-encoded bytes.
【问题讨论】:
-
我没有看到您将密钥存储在 base 64 中,str 不会这样做,对吧?
-
Fernet 密钥被转换为 str 并存储在文件中。现在我需要将这些字符串值编码回 Fernet 键,即 32 url-safe base64
-
这方面的任何线索??????
标签: python cryptography